测试时数据库连接失败

时间:2009-10-08 08:42:37

标签: asp.net-mvc mocking connection-string

我有一个asp.net mvc应用程序,它使用默认的用户数据库。这一切都很好,但我想为它创建一些测试。我有一个测试项目,我立即偶然发现异常

The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.

但是连接字符串工作正常(至少在mvc项目的web.config中)。我的实体数据库访问逻辑构造函数

抛出异常
public ASPNETDBEntities() : 
            base("name=ASPNETDBEntities", "ASPNETDBEntities")
{
    this.OnContextCreated();
}

有什么想法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

问题是,在运行单元测试时,您需要在测试项目的App.config文件中设置连接字符串,以便Entity Framework找到它。

但是,如果您正在进行单元测试,那么您很可能根本不想访问数据库,而是模拟一些虚拟对象进行测试。 (如果你的代码很难做到这一点,你可能需要对代码进行一些重构......)

第三种可能的情况是您正在进行集成测试,因此在测试时希望访问 真实数据库 - 但是,它不一定是 真正的数据库。它可以是具有相同数据库模式的任何db。我建议在其中设置一个虚拟数据库,其中包含一些虚拟记录,您可以对其进行测试(以及在测试项目的App.config文件中放置一个连接字符串),这些测试不会增长并且变慢“真正的”db确实。

相关问题