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