18

テストするクラスの.mファイルで宣言されているプラ​​イベートプロパティがあります。これをClassUnderTestと呼びましょう。ClassUnderTestは、ClassToBeMockedのインスタンスをインスタンス化します。OCMockを使用してClassToBeMockedのインスタンスをモックアウトし、それをClassUnderTestに割り当てるにはどうすればよいですか?

4

2 に答える 2

51

テストクラスでプロパティを再宣言します。プライベートメソッドについても同じことができます。ClassUnderTestTest.mの場合:

@interface ClassUnderTest ()

@property(retain)ClassToBeMocked *instanceToBeMocked;

-(void)somePrivateMethod;

@end
于 2012-08-10T16:59:39.383 に答える
1

次は機能しますか?

id classUnderTest = ... // get from somewhere
id mock = [OCMockObject mockForClass:[ClassToBeMocked class]];
[classUnderTest setValue:mock forKey:@"nameOfThatPrivateProperty"];

このようなプライベートプロパティを設定できるかどうかは完全にはわかりません。どんな物件なのかによると思います。

于 2012-08-10T11:04:24.083 に答える