OCMock不会在新实例中返回存根值

时间:2016-06-09 07:27:13

标签: ocmock

我有下面写的课程

@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,那么对于它的任何新实例都将引用模拟类。

如果不是这样,任何人都可以帮助我在创建新实例后使第二个断言通过。

由于

1 个答案:

答案 0 :(得分:0)

模拟对象可以用于而不是类的实例。创建模拟对象不会影响类的实例。如果要在现有实例中模拟方法,则必须对该特定实例使用部分模拟