我一直在使用moq http://code.google.com/p/moq/在我的单元测试中模拟对象,我在关于最小起订量的网站上看到它能够模拟类和接口。
有一天,我与我的一位同事进行了讨论,他们表示没有理由模拟类,我应该只模拟接口。
我对此并没有真正的答案......而且我似乎也无法在最小起订量网站上找到任何答案。
永远不应该模拟类,这是真的吗?我会说不,因为如果这是真的,那么 Moq 甚至不会允许它......那么,是否有一个时候最好通过接口来模拟类呢?模拟类与模拟接口有什么区别?或者这真的只是一种偏好吗?
模拟一个类是完全有效的。不过,使用 MoQ 时,您只能模拟类上的虚拟方法和属性。
当您有抽象基类而不是接口,或者具有默认实现和虚拟作为扩展点的类时,它非常有用。在很多情况下,您无法访问需要模拟的类的源代码。 .Net框架中有很多例子,例如会员提供者。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)