Mat*_*att 12 .net types mocking
在Microsoft .Net Framework的上下文中,我真的很好奇模拟框架(Rhino Mocks,Moq,NMock 等)实际上是如何从给定类型创建模拟对象.
我对一种方法的具体机制感兴趣,或者如果他们使用不同的方法或许对不同方法的概述.或者,如果有人能指出我的一些文章,那也会很棒.
LBu*_*kin 16
有不同的技术可供嘲弄.
一些模拟的库,如Moq和RhinoMocks使用Castle Dynamic代理.本质上,它们使用反射和运行时代码生成(CodeDom)来动态生成实现被模拟的接口的类,或者从被模拟的非密封类派生的类.
TypeMock有点不同 - 它使用Profiler API来拦截和重定向对任何类型的任何方法的调用.这使得它能够模拟密封类型,系统类,甚至拦截和转移对具体类型的非虚方法的调用.
更新:从TypeMock网站:
Typemock Isolator使用面向方面的编程设计来创建模拟方面.在内部,它使用.NET框架分析器API来监视应用程序的执行.调用方法时,CLR会通知Typemock Isolator.然后,框架可以返回模拟值并完全覆盖原始代码.
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |