Rhino Mocks中的模拟类和接口有什么区别?
答案 0 :(得分:5)
除非该类是抽象的或具有虚方法,否则您不能模拟具体类本身。您可以使用Rhino Mocks伪造抽象类的合同,或使用伪造方法覆盖虚拟方法。
模拟界面只是意味着您正在定义所述界面的虚假实现。
答案 1 :(得分:3)
要模拟类,需要将属性和函数声明为虚拟。在模拟界面时,你可以毫无问题地自由地模拟。
此外,如果您模拟一个类,则可以运行未模拟的代码,如果您正在模拟接口,则无法执行此操作。假设您想要检查当特定函数返回某个值时您的类如何运行,您可能需要模拟一个类。我建议尽可能地使用模拟接口。这要容易得多。