OCMock期望在另一个方法中调用一个方法

时间:2013-05-02 18:18:34

标签: ios unit-testing ocmock

这是关于OCMock期望的一个非常基本的问题。让我们在objectA上有一个实例方法methodA,它调用objectA上的实例方法methodB。

- (void)methodA {
    [self methodB];
}

- (void)methodB {
    ...
}

现在,假设我要验证objectA的部分模拟调用methodA和methodB。看起来你应该做的就是:

- (void)test {
   id mockObjectA = [OCMockObject partialMockForObject:self.objectA];
   [[mockObjectA expect] methodA];
   [[mockObjectA expect] methodB];

   [self.objectA methodA];

   [mockObjectA verify];
}

当我运行测试时,它认为已成功调用methodA但未成功调用methodB。我有什么误会?

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

你需要告诉mock将方法调用转发给真实对象,以便实现实际运行。

[[[mockObjectA expect] andForwardToRealObject] methodA];