XCTest の name プロパティの活用
XCText.framework でテストを書く時テストケースのクラス階層は
MyTests: XCTestCase : XCTest
となっていて XCTest
には name
というプロパティがある。
このプロパティで、今どのクラスのどのテストケース(テストメソッド)が実行されているかを知る事ができる。
ヘッダには
Test's name. Must be overridden by subclasses.
と書かれているがオーバーライド無しでそのまま使える。
NSLog(@"%@", self.name)
で
- [<ClassName> <TestName>]
のフォーマットで出力されるので、上記コードでは __func__
を加えて setUp
と tearDown
のメソッド名もログ表示させている。
上記のテスト実行時のログ出力は以下のようになる。
Test Suite 'All tests' started at 2015-06-14 15:19:14 +0000 Test Suite 'TestTests.xctest' started at 2015-06-14 15:19:14 +0000 Test Suite 'TestTests' started at 2015-06-14 15:19:14 +0000 Test Case '-[TestTests testExample]' started. 2015-06-15 00:19:14.551 Test[7406:6312991] -[TestTests testExample] setUp 2015-06-15 00:19:14.551 Test[7406:6312991] -[TestTests testExample] testExample 2015-06-15 00:19:14.551 Test[7406:6312991] -[TestTests testExample] tearDown Test Case '-[TestTests testExample]' passed (0.000 seconds). Test Case '-[TestTests testExample2]' started. 2015-06-15 00:19:14.552 Test[7406:6312991] -[TestTests testExample2] setUp 2015-06-15 00:19:14.552 Test[7406:6312991] -[TestTests testExample2] testExample2 2015-06-15 00:19:14.552 Test[7406:6312991] -[TestTests testExample2] tearDown Test Case '-[TestTests testExample2]' passed (0.000 seconds). Test Suite 'TestTests' passed at 2015-06-14 15:19:14 +0000. Executed 2 tests, with 0 failures (0 unexpected) in 0.001 (0.001) seconds Test Suite 'TestTests.xctest' passed at 2015-06-14 15:19:14 +0000. Executed 2 tests, with 0 failures (0 unexpected) in 0.001 (0.001) seconds Test Suite 'All tests' passed at 2015-06-14 15:19:14 +0000. Executed 2 tests, with 0 failures (0 unexpected) in 0.001 (0.002) seconds
ログ内にテストの開始 started
と終了 passed (0.000 seconds)
のログもあるけど、個人的には setUp
と tearDown
が突き出して表示されているとテストの開始と終了がパッと見て分かりやすいように思う。
続編はこちら