问:我的问题包括三个部分:
1-我想问一下如何对一个方法进行单元测试这个方法使用另一种方法来连接数据库(层概念或ORM)。
2-单元测试可以在我的方法(它们之间的合同)之间进行测试吗??请举例说明这一点?
3-当我知道我的单元测试只是浪费,而且不是那么重要的时候,我想进行单元测试以避免错误。
请随时解释,任何资源建议...etc
提前感谢
发布于 2010-12-15 16:23:58
一个重要的设计方面是在应用程序的不同层之间具有弱耦合。这种弱耦合可以通过引入接口和抽象类来实现。这样,应用程序的不同层就不会强耦合。
较弱的耦合允许在单元测试中更容易地模拟这些依赖项,这样您就永远不会依赖于数据库调用。
因此,让我们以以下接口为例:
public interface IProductsRepository
{
Product Get(int productId);
void Save(Product product);
}现在,您可以拥有一个依赖于此存储库的服务层:
public class ProductsService
{
private readonly IProductsRepository _repository;
public ProductsService(IProductsRepository repository)
{
_repository = repository;
}
public void SomeBusinessOperation(int productId)
{
var product = _repository.Get(productId);
// TODO: update some properties of the product
_repository.Save(product);
}
}如您所见,服务类现在弱耦合到存储库。然后,您可以很容易地在隔离中对其进行单元测试。只需选择一个模拟框架,如Rhino Mocks,并在您的单元测试中生成一个模拟的存储库实现,以提供给服务构造函数,并能够在任何数据库隔离的情况下测试业务操作。
https://stackoverflow.com/questions/4447925
复制相似问题