测试 - 缺少连接字符串
本文关键字:连接 字符串 测试 | 更新日期: 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 配置。
另一种解决方案是转到解决方案属性页(解决方案>属性(
启动项目 - 检查单个启动项目是否具有配置的项目。
选择,确定 - 完成。