我们一直在使用OCMock进行单元测试,它运行得非常好。我们只是不确定它是怎么工作的。猴子在打补丁?在预处理时生成代码?
我试过在谷歌上搜索但没有成功。
有人知道OCMock是怎么做到的吗?
发布于 2016-08-10 08:20:44
例如,在普通模拟上使用方法,OCMock使用forwardInvocation:和朋友。这类似于其他语言中缺少的动态代理或方法。关于更多细节,您可以从下面的代码开始:
对于类方法和部分模拟,OCMock使用猴子修补。在运行时,它创建类的动态子类(用于部分模拟)或元类(用于类方法),然后将动态类切换到使用中。代码的入口点:
在设置模拟和存根时,OCMock严重依赖于C宏。它使用带块的巧妙技巧来实现带圆点和圆括号的语法。我第一次在祛痰上看到这个。
https://stackoverflow.com/questions/38852238
复制相似问题