模拟类和接口有什么区别?

时间:2011-03-15 13:45:46

标签: c# .net asp.net mocking rhino-mocks

Rhino Mocks中的模拟类和接口有什么区别?

2 个答案:

答案 0 :(得分:5)

除非该类是抽象的或具有虚方法,否则您不能模拟具体类本身。您可以使用Rhino Mocks伪造抽象类的合同,或使用伪造方法覆盖虚拟方法。

模拟界面只是意味着您正在定义所述界面的虚假实现。

答案 1 :(得分:3)

要模拟类,需要将属性和函数声明为虚拟。在模拟界面时,你可以毫无问题地自由地模拟。

此外,如果您模拟一个类,则可以运行未模拟的代码,如果您正在模拟接口,则无法执行此操作。假设您想要检查当特定函数返回某个值时您的类如何运行,您可能需要模拟一个类。我建议尽可能地使用模拟接口。这要容易得多。