Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

GTM Unit Test

タグ: Objective-C iPhone

Google Toolbox for Mac(GTM)には、Developer Tools標準のユニットテストフレームワーク「SenTestingKit」を利用したユニットテストコードが含まれている。
SenTestingKitがiPhone SDKに対応していないのに対し、このユニットテストコードは独自にSenTestingKitの実装を補うことで、iPhone向けビルドでも使えるようになっている。
ただ、その挙動はSenTestingKit本来のものとは少々異なるようだ(バージョン1.5.1)。

例えば次のテストケース。

- (void)test
{
	STAssertEquals(1, 2, NULL);

	const int actual = 3;
	STAssertEquals(1, actual, @"1 のはずなのに %d になっている", actual);
	
	STAssertEquals(1L, 1UL, @"(´・∀・` )");
}

これをSenTestingKitでテストすると「全ての STAssertEquals がエラーを出力する」

それに対し、GTMを使ったiPhone向けビルドでは「最初の STAssertEquals がエラーを出した時点でテストケースは中断される」

これは、SenTestingKitの SenTestCase::failWithException: が渡された例外のreasonを出力するに留めるのに対し、GTMのものは例外をraiseするからである(SenTestingKitのものも、事前に raiseAfterFailure を呼んでいれば例外をraiseする)。
なのでこのメソッドをオーバーライドすれば、SenTestingKitでテストケースを中断させるようにも……

GTMでテストケースを継続させるようにもできる。

スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://idlysphere.blog66.fc2.com/tb.php/157-85d9456a
この記事にトラックバックする(FC2ブログユーザー)

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。