使用Linq到Sql的MVC单元测试

时间:2009-10-02 16:22:27

标签: asp.net-mvc mstest

我有一个在我的网站上工作但在单元测试期间失败的控制器。它非常简单,依赖于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中的连接字符串是否有效。

谢谢, 约翰

1 个答案:

答案 0 :(得分:1)

将连接字符串添加到单元测试项目中的app.config文件中。

FWIW,我实际上并没有在我的单元测试中使用真正的数据库(尽管我在集成测试中)。我写了一篇关于LINQ-to-SQL implementation的文章,如果您对更多信息感兴趣,可以在我的blog上进行模拟。