【问题标题】:OCMock expect a method called within another methodOCMock 期望在另一个方法中调用一个方法
【发布时间】: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没有被成功调用。我有什么误解?

感谢您的帮助。

【问题讨论】:

    标签: ios unit-testing ocmock


    【解决方案1】:

    您需要告诉 mock 将方法调用转发到真实对象,以便实现真正运行。

    [[[mockObjectA expect] andForwardToRealObject] methodA];
    

    【讨论】:

    • 光荣,谢谢!看来我需要更仔细地阅读文档。顺便说一句,可能想对您的答案稍作修改以供未来的人们使用:[[[mockObjectA expect] andForwardToRealObject] methodA];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    相关资源
    最近更新 更多