-1

模拟一个具体的类和一个接口有什么好处吗?

样本:

在我的课堂上,我CustomerService称之为CustomerDataProvider

customerDataProvider.GetCustomers();

customerDataProvider也可以是 type ICustomerDataProvider。当我想在CustomerService不进入数据库的情况下测试唯一内部的逻辑时,我必须模拟ORcustomerDataProvider类型的对象。ICustomerDataProviderCustomerDataProvider

嘲笑一种类型比另一种类型的优势在哪里?

4

1 回答 1

0

模拟接口而不是类的主要好处是它更简单——接口不能被密封/最终,它们不能有你不能覆盖的方法,它们不能有不寻常的构造语义。模拟库可以消除模拟类的许多令人头疼的问题,但它们无法弥补不可测试的设计。

模拟类而不是接口的主要原因是:有时你只有一个类。如果您正在做自己的设计和实现,那么您可以选择构建一个或另一个。如果你正在使用别人的图书馆,你必须处理它提供的东西。

于 2012-01-26T01:40:35.127 回答