测试 - 缺少连接字符串

本文关键字:连接 字符串 测试 | 更新日期: 2023-09-27 18:26:07

Visual studio基于方法为我创建了一个单元测试项目(右键单击添加测试(。 当我尝试访问数据库时,出现异常。 运行此代码以查看我的连接是什么:

ConnectionStringSettings connStringSettings = ConfigurationManager.
    ConnectionStrings["myConnectionString"];

但是,connStringSettings为空。 检查时,连接字符串集合的计数仅为 1。 它似乎没有从我的 web.config 读取。

我的 DAL 是隔离的,无法通过代码设置其连接字符串。 其连接字符串在代码中设置如下:

set
{
    value = System.Configuration.ConfigurationManager.
        ConnectionStrings["myConnectionString"].ConnectionString;
}

我该如何解决这个问题?

测试 - 缺少连接字符串

App.config文件添加到单元测试项目中,并从Web.config复制连接字符串。

更新:更好的解决方案

虽然添加配置将解决眼前的问题,但它仍然会导致单元测试,具体取决于实际的数据库连接,这不是很好。解决此问题的更好方法是完全模拟 DAL,并将其传递给使用它的服务。

Microsoft在这里提供了一些指导。设置需要更多时间,但它允许测试更加包含和完整。

我已经成功地使用 MockQueryable 在测试数据上下文中模拟单个表。

太好了,这对我有用。我已经在单元测试项目下添加了应用程序配置文件。但是请确保我们遵循synatx,否则它将抛出异常。

<connectionStrings>
    <add name="test" connectionString="" providerName="System.Data.SqlClient" />
    <add name="db" connectionString=""" providerName="System.Data.SqlClient"/>
</connectionStrings>

在单元测试的 app.config 文件中添加连接字符串。 单元测试项目将无法访问 Web 项目的 Web 配置。

另一种解决方案是转到解决方案属性页(解决方案>属性(

启动项目 - 检查单个启动项目是否具有配置的项目。

选择,确定 - 完成。