OCMock 期望在另一个方法中调用一个方法
Posted
技术标签:
【中文标题】OCMock 期望在另一个方法中调用一个方法【英文标题】:OCMock expect a method called within another method 【发布时间】:2013-05-02 18:18:34 【问题描述】:这是一个关于 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】:您需要告诉 mock 将方法调用转发到真实对象,以便实现真正运行。
[[[mockObjectA expect] andForwardToRealObject] methodA];
【讨论】:
光荣,谢谢!看来我需要更仔细地阅读文档。顺便说一句,可能想对您的答案稍作修改以供未来的人们使用:[[[mockObjectA expect] andForwardToRealObject] methodA];
以上是关于OCMock 期望在另一个方法中调用一个方法的主要内容,如果未能解决你的问题,请参考以下文章