每当我尝试对演示者和模拟视图进行单元测试时,我最终会遇到太多的数据库依赖性
public EditAccount(IAccountEditPage _view, ISession _session, IResponse _response)
{
}
public void view_SaveUser()
{
//Class that takes the view's data and persists it to DB
}
显然我不能为这个演示者编写单元测试,因为我有一个使用我的模型类具有强大的数据库依赖性的结果。
如果没有构造函数注入触发我的演示者中的数据库的每个类,我应该如何删除对数据库的依赖?我不想每次都看到这种情况。
我正在使用moq,如果它有帮助。
编辑:另外我应该提一下,“view_SaveUser”中的代码非常精简,不是直接的数据库访问或类似的东西。它通常只有几行。我没有超越主持人AFAIK的范围。
答案 0 :(得分:1)
如果您不想在构造函数上注入实例,那么您使用IoC框架作为Spring.Net或Castle Windsor使用setter注入来注入依赖项。
这样做,您只需要在框架配置中指定哪些类用于实际代码和测试项目,将自动注入依赖项,您将避免使用该构造函数。