OCMClassMock 和 OCMStrictClassMock

OCMClassMock and OCMStrictClassMock

我是OCMock 3的新手,我看到有两种方法:

OCMClassMock(cls): creates a new nice class mock object
OCMStrictClassMock(cls): creates a class mock object 

我读了文档,但我仍然感到困惑,有两个问题:

  1. OCMClassMock(cls)OCMStrictClassMock(cls)到底有什么区别?

  2. 什么时候应该使用OCMClassMock(cls),什么时候应该使用OCMStrictClassMock(cls)

====更新====

我可以理解为 OCMClassMock(cls) 是部分模拟,当调用它的方法时,真正的实现仍然 运行 而 OCMStrictClassMock(cls) 是一个像骨架一样的完整模拟,没有真正的实现?

Can I understand as OCMClassMock(cls) is partial mock that the real implementation still run when call method on it

这描述了 OCMPartialMock

OCMStrictClassMock(cls) is a full mock like a skeleton without real implementation?

这是对 OCMClassMock 的准确概括描述。

来自您链接的参考资料:

[OCMStrictClassMock] Creates a mock object in strict mode. By default mocks are nice, they return nil (or the correct default value for the return type) for whatever method is called. In contrast, strict mocks raise an exception when they receive a method that was not explicitly expected.

所以正如您所说,OCMClassMock 就像一个实例的框架,您只对需要使用的方法进行存根。 OCMClassMockOCMStrictClassMock 之间的区别在于,前者将简单地 return nil 用于您尚未显式存根的方法,而后者将在您调用方法时抛出异常它是你没有明确存根的。