我有一个在我的网站上工作但在单元测试期间失败的控制器。它非常简单,依赖于Linq to Sql来返回JSON对象的集合。
测试失败,因为从MVC项目外部调用时,DataContext无法找到连接字符串。
我查看了自动生成的代码:
public DC():
base(global::System.Configuration.ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString, mappingSource)
{
OnCreated();
}
Web项目可以在web.config中找到“myConnectionString”条目,但测试项目找不到它。我得到的错误信息是:
Test method MyMVCApp.Controllers.HomeControllerTest.IndexShouldReturnIssues threw exception: System.NullReferenceException: Object reference not set to an instance of an object..
我不想从单元测试中传递另一个连接字符串,因为我想测试web.config中的连接字符串是否有效。
谢谢, 约翰
答案 0 :(得分:1)
将连接字符串添加到单元测试项目中的app.config文件中。
FWIW,我实际上并没有在我的单元测试中使用真正的数据库(尽管我在集成测试中)。我写了一篇关于LINQ-to-SQL implementation的文章,如果您对更多信息感兴趣,可以在我的blog上进行模拟。