我有一个在要测试的类的 .m 文件中声明的私有属性,我们称之为 ClassUnderTest。ClassUnderTest 实例化 ClassToBeMocked 的一个实例。如何使用 OCMock 模拟 ClassToBeMocked 的实例并将其分配给 ClassUnderTest?
问问题
7330 次
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 回答