2012年7月5日木曜日

単体テストを追加する方法!

今日はいつもと趣向を変えまして、Mac OS XのCocoaアプリについて
単体テストを追加する方法を書こうと思います。

XCode 4.3.3にて説明します!


新規で作る分には、その時に単体テストターゲットを追加する
オプションがウィザードでありますので、その部分を
選択するだけです。

しかし、既存のCocoaアプリについて、単体テストを追加する
という場合、いくつか設定が必要です。


まず、そのCocoaアプリのプロジェクトファイルを選び
ターゲットを追加します。
こんな感じ!














ターゲット追加時に、
Mac OS X > Other > Cocoa Unit Testing Bundle
というのを選択してNextをクリック!!!

そうすると、以下のダイアログが出ます。














ここで、名称を入力するだけで基本的には良いのですが、
テスト対象がAuto Referencing Counter(ARC)をサポートしているか
で、チェックボックスをON/OFFを忘れずに!

出来上がると、(上で設定した名称の)ターゲットが出来ます。
そのターゲットのビルド設定2カ所をいじる必要があります。

一つ目








Linking項目のBundle Loaderという項目。
ここに
$(BUILD_PRODUCTS_DIR)/アプリ名称.app/Contents/MacOS/アプリ実行ファイル
を入力してください。


二つ目









Unit TestingのTest Hostという項目。
ここに
$(BUNDLE_LOADER)
と入力してください。

そして、最後にスキームを設定します。














Testのスキームに、追加したターゲットを追加します。


基本的には以上なのですが、元アプリのコンパイラが
Apple LLVMではない場合や、アーキテクチャが32ビット
などであった場合は、その部分も変更する必要があります。



以上で単体テストを組み込む事が出来ます!




コードはSenTestCaseを継承したクラスを作成します!
コレはJUnitやCUnitとほとんど同じです!

setUp
tearDown
があって、テストケースをtestXXXXとする

ですね!!!


どうです?
簡単でしょ?


言い訳が一つ減りました^^;;;
また別な言い訳を一つ考えないといけないですね(笑)