アットウィキロゴ

Mac OS X Tips

XcodeではUnitテストが簡単にできるようになっている。
ここではCocoaのプロジェクトでUnit Testを作成、実行する方法を簡単に示す。
テスト用ターゲットのひな形が用意されており、そのターゲットを追加してテストケースクラスを作り、-(void)testXXXというメソッドを作ってビルドするだけ。
ビルドフェーズの最後にテストを実行して結果を表示してくれる。

C++の場合はCocoa Unit Test Bundleの代わりにCarbon Unit Test Bundleを使用するのだが、メソッドを作るだけとは行かず、テストケースを登録するためのコードも書く必要がある。


Independent Test
 Cocoa Unit Test Bundleターゲットを追加する
 ターゲットにSenTestingKit.frameworkを追加する
 New File... Objective-C test case class でテストクラスを作成する

  - (void)setUp;
  - (void)tearDown;
  - (void)testXXX;

 テスト対象のソースファイルもターゲットに追加する
 ビルドする

Dependent Test
 Cocoa Unit Test Bundleターゲットを追加する
 ターゲットの一般(General)の直接依存関係(Direct Dependencies)にテスト対象のターゲットを追加する
  ビルドのリンク(Linking)のバンドルローダー(Bundle Loader)に$(BUILT_PRODUCTS_DIR)/xxx.app/Contents/MacOS/xxxを設定する
   ゼロリンク(Zero Link)をオフにする
  ビルドの単体テスト(UnitTesting)のテストホスト(Test Host)に上記と同じかまたは$(BUNDLE_LOADER)を設定する
 !テスト対象のターゲットもゼロリンクをオフにする
   ターゲットにSenTestingKit.frameworkを追加する  New File... Objective-C test case classでテストクラスを作成する  (テスト対象のソースはターゲットに追加する必要はない)  ビルドする

エラーの報告は以前の情報も消えずに残っているため、その回のビルドでのエラー件数に注意すること

nilでなければ STAssertNotNil( a, description, ... );
TRUE/YESであれば STAssertTrue( expression, description, ... );
FALSE/NOであれば STAssertFalse( expression, description, ... );
[a1 isEqual:a2]であれば(文字列の比較はこれを使う) STAssertEqualObjects( a1, a2, description, ... );
a1 == a2であれば STAssertEquals( a1, a2, description, ... );
例外が発生すれば STAssertThrows( expression, description, ... );
例外が発生しなければ STAssertNotThrows( expression, description, ... );

最終更新:2008年12月22日 13:38