【发布时间】:2011-10-27 15:25:50
【问题描述】:
每当我尝试对演示者和模拟视图进行实际单元测试时,我最终都会遇到太多的数据库依赖项
public EditAccount(IAccountEditPage _view, ISession _session, IResponse _response)
{
}
public void view_SaveUser()
{
//Class that takes the view's data and persists it to DB
}
显然我不能为这个演示者编写单元测试,因为我有一个具体的使用我的模型类,它具有很强的数据库依赖性。
如果没有构造函数在我的演示者中注入每个接触数据库的类,我应该如何删除对数据库的依赖?我不想在我拥有的每一个视图中每次都这样做。
如果有帮助,我正在使用最小起订量。
编辑:另外我应该提到“view_SaveUser”中的代码非常精简,不是直接数据库访问或类似的东西。通常只有几行。我并没有超出演示者 AFAIK 的范围。
【问题讨论】:
-
构造函数依赖于数据提供者是很常见的。我不熟悉 MVP,但在 MVC 中,它的标准做法有一个 IRepository 构造函数参数。您还可以通过像 Unity 这样的 DI 容器使用属性注入。
标签: asp.net unit-testing dependency-injection webforms moq