XCTest フレームワークで非常に単純なモック オブジェクトを実装しようとしています。現在の TestCase オブジェクト以外のオブジェクトから XCTAssert マクロを呼び出せるようにしたいと考えています。
SenTestKit でこれを実行できたことを思い出しますが、XCTest でそれを機能させる方法がわかりません。
次のコード サンプルは失敗するはずですが、成功します。
私が考えることができる唯一のことは、(以下の例では) MockThing は XCTestCase 以外のサブクラスでなければならないということです。それがどうあるべきかわかりません。
MyTest.m
@interface MyTest : XCTestCase
@end
@interface MockThing : XCTestCase
- (void) fail;
@end
@implementation MyTest
- (void)testExample
{
MockThing * mockThing = [[MockThing alloc] init];
[mockThing fail];
}
@end
@implementation MockThing
- (void) fail
{
XCTFail(@"This should fail");
}
@end
これを適切に失敗させるにはどうすればよいですか (OCUnit を使用する必要はありません)。