【发布时间】:2011-08-09 15:44:34
【问题描述】:
我正在研究 TDD,我遇到了一个可以使用一些帮助的场景。
我的项目使用 MVC3,并且结构具有 BAL 和 DAL 层。每一层都在自己的项目中。 BAL 通过存储库模式访问数据库。由于我使用的是 EntityFramework,因此我还实现了 UnitOfWork 模式。 BAL 中的服务类如下所示:
public class ExampleService
{
private UnitOfWork unitOfWork;
private bool isProcessing = false;
internal ExampleService(UnitOfWork unitOfWork)
{
this.unitOfWork = unitOfWork;
}
public void ExposedMethod()
{
//do stuff with the unitOfWork
}
}
问题:我想为此创建一个单元测试(显然我应该在代码之前编写测试)。但是,如果我按原样运行代码,测试将是一个集成测试,因为它将使用 UnitOfWork 并连接到我的数据库。我可以模拟一个新的 UnitOfWork 访问内存中的虚拟数据,但我不明白如何注入它,因为构造函数是内部的。我宁愿不编写驻留在每个项目中的单元测试。
有什么想法吗?
【问题讨论】:
标签: asp.net-mvc-3 tdd repository