FrontPage

2010/09/21からのアクセス回数 8877

iPhone SDKのUnitTestは中途半端

iPhone SDKにもUnitTest用のクラスとプロジェクトテンプレートが提供されています。

UnitTest バンドルの新規作成

iPhone用のアプリケーションプロジェクト(ここではCopyTextを使います)に、UnitTestバンドルを追加します。

単体テストクラスを作成

次に単体テスト用のクラスを作成します。

今回は、APPLICATION_UNIT_TESTを使わないので、MyTestCase.hのdefine文を変更します。

#define USE_APPLICATION_UNIT_TEST 0

単体テストの実行

単体テストの実行は、

単体テストに失敗すると「CopyTest-ビルド結果」のウィンドウにエラーが表示されるのですが、 正常終了の場合は、Build Succeededとしか出力されません。

「何となく」物足りないのと、エラーが発生した場合デバッグすることができないのが、 私が「中途半端」と感じるところです。

試しにtestMathの1+1を1+2に変更し、ビルドして見てください。

failed.png

のようなエラーが「スクリプト実行」の結果として表示されます。 残念ながらこのままではtestMathをデバッグできません。

かっこ悪いデバッガの使い方

とても残念なのですが、色々調べた結果単体テストのデバッグには、次ような作業がプロジェクト毎に必要になります。

この方法は、Scitt Densmore氏の以下のURLを参照しました。

otestの設定

octestの追加手順は以下の通りです。

otestの設定

arg_setting.png

のように引数と環境変数を設定します。

引数は、2個目の引数は、単体テストのターゲット名+.octestとします。

-SenTest All
UnitTests.octest

環境変数は、

NameValue
DYLD_ROOT_PATH$(SDKROOT)
DYLD_FRAMEWORK_PATH${BUILD_PRODUCTS_DIR}:${SDK_ROOT}:${DYLD_FRAMEWORK_PATH}
IPHONE_SIMULATOR_ROOT$(SDKROOT)
CFFIXED_USER_HOME$(HOME)/Library/Application Support/iPhone Simulator/User/
OBJC_DISABLE_GCYES
DYLD_LIBRARY_PATH${BUILD_PRODUCTS_DIR}:${SDK_ROOT}:${DYLD_LIBRARY_PATH}
DYLD_NEW_LOCAL_SHARED_REGIONSYES
DYLD_NO_FIX_PREBINDINGYES

デバッガの起動

デバッガを起動する前に、もう一度、ターゲットUnitTestsを実行しておきます。

次に、

debugger.png

これで、無事デバッガが使えるようになりました。

コメント

この記事は、

選択肢 投票
おもしろかった 0  
そうでもない 0  
わかりずらい 0  

皆様のご意見、ご希望をお待ちしております。


(Input image string)

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc