OCMock 测试方法是否只被调用

OCMock test if method does nothing but is called

使用 OCMock,如何测试方法是否不执行任何操作?

- (void)myMethod:(BOOL)active
{
    if (active) {
        // Set property or do whatever
    }
    // Do nothing -- I need to test this scenario
}

您可以创建部分模拟来验证是否调用了该方法。然后你必须设计一个测试来确保没有到达 if 语句中的代码。如何做到这一点完全取决于“//设置属性或做任何事情”所做的事情。

也就是说,如果您的方法的整个主体都有一个 if 语句,您可能需要考虑重构您的代码...