我有下面写的课程
@implementation B
- (NSString *)returnMock{
return @"BBB";
}
@end
我写了下面的测试:
- (void)testB {
id mockB = [OCMockObject mockForClass:[B class]];
[[[mockB stub] andReturn:@"mock"] returnMock];
//This check is a pass
XCTAssertEqualObjects(@"mock", [mockB returnMock]);
B *b = [[B alloc] init];
//This check is a fail
XCTAssertEqualObjects(@"mock", [b returnMock]);
}
据我了解,如果为类创建了一个mock,那么对于它的任何新实例都将引用模拟类。
如果不是这样,任何人都可以帮助我在创建新实例后使第二个断言通过。
由于
答案 0 :(得分:0)
模拟对象可以用于而不是类的实例。创建模拟对象不会影响类的实例。如果要在现有实例中模拟方法,则必须对该特定实例使用部分模拟 。