我是OCMock 3的新手,我看到有两种方法:
OCMClassMock(cls): creates a new nice class mock object
OCMStrictClassMock(cls): creates a class mock object
我阅读了文档,但仍感到困惑,并有两个问题:
OCMClassMock(cls)
和OCMStrictClassMock(cls)
之间到底有什么区别? OCMClassMock(cls)
?什么时候应该使用OCMStrictClassMock(cls)
? ====更新====
我可以理解为
OCMClassMock(cls)
是部分模拟,当对其调用方法时,真正的实现仍在运行,而OCMStrictClassMock(cls)
是一个完整的模拟,就像没有真正实现的骨架一样? 最佳答案
我可以理解为OCMClassMock(cls)
是真正的部分模拟
调用方法对其执行时,实现仍在运行
这描述了OCMPartialMock
。
OCMStrictClassMock(cls)
是一个完整的模拟,就像没有真实的骨架一样
实施?
这是OCMClassMock
的准确的一般描述。
从您链接的参考中:
[OCMStrictClassMock
]以严格模式创建模拟对象。通过
默认的模拟很好,它们返回nil(或正确的默认值
对于返回类型),无论调用什么方法。相反,
严格的模拟收到一个方法时会引发异常
没有明确预期。
因此,正如您所说,OCMClassMock
就像实例的骨架,在其中仅存根需要使用的方法。 OCMClassMock
和OCMStrictClassMock
之间的区别在于,对于尚未显式存根的方法,前者将简单地返回nil,而如果您对尚未显式存根的方法进行调用,则后者将引发异常。