WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

Kiwiの導入

      2015/08/08

Kiwiについて

KiwiはiOSアプリケーション開発でBDD(振る舞い駆動開発)を行うためのテストフレームワークです。

Xcodeには標準でOCUnitというテストフレームが付随しています(※Xcode5からはXCTest)。
KiwiはそのOCUnitの機能を内部で用いているので、OCUnitのアサーション(テストコード記法の一種)がそのまま使え、インストールも容易です。

Kiwiのインストール

Kiwiのインストールを行う前に必要ないくつかの手順があるので、それらを踏んで行きます。

CocoaPodsのインストール

※すでにCocoaPodsがインストールされている場合は次の章へ進んでください

Kiwiをインストールするには、CocoaPodsというツールが必要です。

CocoaPodsのインストール方法を参考にインストールしてください。

Unit Test Target(単体テストのターゲット)を追加

※すでにプロジェクトに単体テストのターゲットが存在する場合は次の章へ進んでください

こちらの環境ではXcode5でプロジェクトを作成すると、デフォルトで単体テストのターゲットができていました。

Unit-Test-Target-already-exist

もしまだ単体テストのターゲットがない場合は以下の手順で追加します。

Xcodeを開き、メニューから File -> New -> Target… と辿って行きます。

左サイドバーのOtherを選択すると、右にどのターゲットのテンプレートを利用するかが出るので、”Cocoa Touch Unit Testing Bundle”を選択します。

Unit-Test-Targetを追加

名称は適当でかまいません。ここでは「nineteen19Tests(※アプリ名+Testsという書式)」にしました。
Xcode5ではTypeは”XCTest”がデフォルトで選択されていますが、そのままでかまいません。
あとは、実際にテストを行いたいプロジェクトが選択されているかを確認して”Finish”をクリックします。

CocoaPodsを用いてインストール

まず、Xcodeを既に起動している場合はここで一旦閉じておきます。

続いて、`プロジェクト名.xcodeproj`というファイルが置かれているディレクトリに移動して、`Podfile`というファイルを作成します。
※すでに`Podfile`が存在する場合はそれを編集します。

`Podfile`を以下のように書きます。

platform :ios, '7.0'

target :nineteen19Tests, :exclusive => true do
   pod 'Kiwi'
end

# ※XCTestベース(Xcode5)の場合はこちら
target :nineteen19Tests, :exclusive => true do
   pod 'Kiwi/XCTest'
end

iosのバージョンは適宜変更してください。
“nineteen19Tests”の部分はさっき作成したUnit Test Targetの名称に置き換えてください。

なお、Xcode5でXCTestをベースにする場合は`pod ‘Kiwi/XCTest’`のように書いてください。

上記を内容で保存したら、CocoaPodsによるKiwiのインストールを実行します。

$ pod install

インストールが完了したら、.xcworkspace によってXcodeを起動します。

$ open myproject.xcworkspace

Kiwiでの単体テストターゲットの設定

設定というよりは、確認作業になります。

まず、CocoaPodsによってインストールされた`Pods-.xcconfig`という設定ファイルがプロジェクトに存在するかを確認します。

また、プロジェクトナビゲータでプロジェクトを選択し、Infoペインで(単体テストではない)プロジェクトを再選択します。
そこで、`Pods-.xcconfig`がすべての単体テストターゲットの設定で使われていることを確認します。

Unit_Test_Target_Configuration

次に単体テストのターゲットに移動して、BuildSettingの修正を行います。

“BundleLoader”の値を `$(BUILT_PRODUCTS_DIR)/MyProject.app/ApplicationTargetName`に変更します。

スクリーンショット-2013-11-30-0.57.56

続いて、”Other Linker Flags”に`-ObjC -framework SenTestingKit`が設定されていることを確認します(※’Kiwi/XCTest’をインストールした場合は`-ObjC -framework XCTest`) 。

これで単体テストターゲットの設定は完了です。

Schemeの設定

最後にSchemeの設定を行います。
ターゲットの選択時にポップアップするメニューの中から”EditScheme”をクリックします。

Edit-Scheme

続いて、左下の”+”をクリックしてスキームに追加するテストを選択します。

Add-Test1

Select-Test-of-Kiwi

以上で、Kiwiの導入は完了です。
Xcode上で⌘+Uというショートカットでテストを実行することができます。

⌘+Uでテストが実行されればインストールは成功です。
ちなみにサンプルとして用意されているテストは、実行はされても結果は必ず失敗するようになっています。

参考

 - Objective-C , , ,