日本語のドキュメントがあってよかった。
Xcodeで用意されている単体試験の環境は、以前、Cocoa勉強会でも発表された事があるオープンソースのSenTestingKitフレームワークだ。
このフレームワークは、ロジックテストとアプリケーションテストの2種類の単体試験を提供しているものだが、Xcodeの新規プロジェクトの雛形に用意されているのは、アプリケーションテストの方だ。これは、ログに「All tests」という文言が印字されているので分かる。
前回の記事では、単体試験で利用できるマクロについて説明する事が出来なかったので、一覧を用意してみた。これは著者自身の為でもある。
STFail(failure_description, ...)テストケースを失敗させる。STAssertEqualObjects(object_1, object_2, failure_description, ...)2つのオブジェクトが異なる場合、テストケースは失敗する。STAssertEquals(value_1, value_2, failure_description, ...)2つの値が異なる場合、テストケースは失敗する。STAssertEqualsWithAccuracy(value_1, value_2, accuracy, failure_description, ...)2つの値の差が閾値より大きい場合、テストケースは失敗する。STAssertNil(expression, failure_description, ...)式がnilでない場合、テストケースは失敗する。STAssertNotNil(expression, failure_description, ...)式がnilの場合、テストケースは失敗する。STAssertTrue(expression, failure_description, ...)式が偽の場合、テストケースは失敗する。STAssertFalse(expression, failure_description, ...)式が真の場合、テストケースは失敗する。STAssertThrows(expression, failure_description, ...)式が例外を発生させない場合、テストケースは失敗する。STAssertThrowsSpecific(expression, exception_class, failure_description, ...)式が特定の例外を発生させない場合、テストケースは失敗する。STAssertThrowsSpecificNamed(expression, exception_class, exception_name, failure_description, ...)式が特定の名前の例外を発生させない場合、テストケースは失敗する。STAssertNoThrow(expression, failure_description, ...)式が例外を発生させる場合、テストケースは失敗する。STAssertNoThrowSpecific(expression, exception_class, failure_description, ...)式が特定の例外を発生させる場合、テストケースは失敗する。STAssertNoThrowSpecificNamed(expression, exception_class, exception_name, failure_description, ...)式が特定の名前の例外を発生させる場合、テストケースは失敗する。STAssertTrueNoThrow(expression, failure_description, ...)式が偽または例外発生の場合、テストケースは失敗する。STAssertFalseNoThrow(expression, failure_description, ...)式が真または例外発生の場合、テストケースは失敗する。
ソースコード
GitHubからどうぞ。
https://github.com/murakami/workbook/tree/master/ios/Exam - GitHub
関連情報
Xcode Unit Testing GuideiOS開発ガイド:iOSアプリケーション開発ワークフローについて