OCMock如何运作?

时间:2016-08-09 13:31:28

标签: unit-testing ocmock

我们一直在使用OCMock进行单元测试,效果非常好。 我们只是不确定它是如何工作的。猴子补丁?预处理代码生成?

我试过谷歌搜索没有成功。

任何人都知道OCMock如何做到这一点?

1 个答案:

答案 0 :(得分:1)

例如,正常模拟的方法,OCMock使用forwardInvocation:和朋友。这类似于其他语言中缺少的动态代理或方法。有关详细信息,您可以从以下代码开始:

对于类方法和部分模拟,OCMock使用猴子修补。在运行时,它会创建类(对于部分模拟)或元类(对于类方法)的动态子类,然后将动态类切换为使用。代码入口点:

为了设置模拟和存根,OCMock严重依赖于C宏。它使用块的巧妙技巧来实现带点和圆括号的语法。我第一次在Expecta看到了这个。