モック オブジェクトからメソッドを呼び出すと、OCMockito でクラッシュが発生します。OCMockito-1.2.0 のみを使用
基本的に、私がやっていることは: OCHamcrestIOS.framework と OCMockitoIOS.framework を含めます。フレームワークフォルダーにあります。必要に応じてチェックポイントのコピーもチェックします。
次に、私は私のテストコードです。これまでより簡単なテストを行います。
- (void)testUsingNumbers
{
// assertThatInt(42, is(@42));
// assertThatUnsignedShort(6 * 9, isNot(@42U));
NSArray *mockArray = mock([NSArray class]);
// stubbing
[given([mockArray objectAtIndex:0]) willReturn:@"first"];
// following prints "(null)" because objectAtIndex:999 was not stubbed
NSLog(@"%@", [mockArray objectAtIndex:999]);
}
そして、テストではなくモックオブジェクトの呼び出しで失敗したため、テストがクラッシュしました。これはコンソール メッセージです。
[NSInvocation mkt_arrayArguments]: unrecognized selector sent to instance 0x2864db0
<unknown>:0: error: -[ExampleTests testUsingNumbers] : -[NSInvocation mkt_arrayArguments]: unrecognized selector sent to instance 0x2864db0
(
0 CoreFoundation 0x00b1d5e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x007958b6 objc_exception_throw + 44
2 CoreFoundation 0x00bba903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x00b0d90b ___forwarding___ + 1019
4 CoreFoundation 0x00b0d4ee _CF_forwarding_prep_0 + 14
5 ExampleTests 0x0279107a -[MKTInvocationMatcher setExpectedInvocation:] + 303
6 ExampleTests 0x027901f9 -[MKTInvocationContainer setInvocationForPotentialStubbing:] + 150
7 ExampleTests 0x0279251d -[MKTBaseMockObject prepareInvocationForStubbing:] + 52
8 ExampleTests 0x027921b9 -[MKTBaseMockObject forwardInvocation:] + 79
9 CoreFoundation 0x00b0d6da ___forwarding___ + 458
10 CoreFoundation 0x00b0d4ee _CF_forwarding_prep_0 + 14
)
3 つの異なるインストール方法を実行しましたが、ソース プロジェクトの例でさえクラッシュしています。このフレームワークは、以前のバージョンの xcode および mac OS で正常に動作していました。現在、私はxcode 5.1.1とMac os 10.9.2を使用しています