Visual Studio基于一种方法为我创建了一个单元测试项目(右键单击添加测试)。当我尝试访问数据库时,我得到一个例外。抛出此代码,看看我的连接是什么:
ConnectionStringSettings connStringSettings = ConfigurationManager.
ConnectionStrings["myConnectionString"];
但是,connStringSettings
为空。经过检查,ConnectionStrings集合只有一个。它似乎不是从我的web.config读取。
我的DAL已隔离,无法通过代码设置其连接字符串。它的连接字符串设置如下代码:
set
{
value = System.Configuration.ConfigurationManager.
ConnectionStrings["myConnectionString"].ConnectionString;
}
我该如何解决这个问题?
答案 0 :(得分:55)
将App.config
文件添加到您的单元测试项目中,并复制Web.config
中的连接字符串。
虽然添加配置将解决当前的问题,但它仍然会导致单元测试,具体取决于实际的数据库连接,这不是很好。解决这个问题的更好方法是完全模拟DAL并将其传递给正在使用它的服务。
Microsoft为here提供了一些指导。设置需要更多的时间,但它允许测试更加包含和完整。
答案 1 :(得分:6)
优秀这对我有用。我在单元测试项目下添加了App.config文件。但请确保我们应该遵循synatx,否则会引发异常。
<connectionStrings>
<add name="test" connectionString="" providerName="System.Data.SqlClient" />
<add name="db" connectionString=""" providerName="System.Data.SqlClient"/>
</connectionStrings>
答案 2 :(得分:5)
在单元测试的app.config文件中添加连接字符串。单元测试项目无法访问您的Web项目的Web配置。
答案 3 :(得分:-3)
另一种解决方案是转到解决方案属性页(解决方案 - >属性)
启动项目 - 检查单个启动项目是否具有配置。
选择,确定 - 完成。