我有一个在我的类的.m文件中声明的私有属性,我们称之为ClassUnderTest。 ClassUnderTest实例化ClassToBeMocked的实例。如何使用OCMock模拟ClassToBeMocked的实例并将其分配给ClassUnderTest?
答案 0 :(得分:48)
在测试类中重新声明属性。您可以对私有方法执行相同操作。在ClassUnderTestTest.m中:
@interface ClassUnderTest ()
@property(retain)ClassToBeMocked *instanceToBeMocked;
-(void)somePrivateMethod;
@end
答案 1 :(得分:1)
以下是否有效?
id classUnderTest = ... // get from somewhere
id mock = [OCMockObject mockForClass:[ClassToBeMocked class]];
[classUnderTest setValue:mock forKey:@"nameOfThatPrivateProperty"];
不完全确定您是否可以设置这样的私有属性。我认为这取决于它是什么类型的财产。