为什么嘲笑首选接口?

时间:2010-09-04 03:22:54

标签: mocking moq rhino-mocks

我一直在研究使用Moq和Rhino Mocks进行模拟的示例,所有示例似乎都是模拟接口。为什么是这样?我听说他们可以模拟静态类,但是非静态类呢?

2 个答案:

答案 0 :(得分:3)

由于:

  1. 对象上的所有方法都需要是虚拟的才能模拟它们
  2. 你的模拟器仍然需要执行真实对象的构造函数,传递参数并在其中运行逻辑,这可能很痛苦。

答案 1 :(得分:1)

因为那是DynamicProxy的限制(用于创建模拟对象的实例)。如果您使用界面将没有问题,但如果您想使用类,那么您应该使所有公共成员虚拟http://tiredblogger.wordpress.com/2008/05/06/moq-mocks-use-virtual-method-or-interfaces/