EF数据模型类中的单元测试

时间:2013-10-09 08:31:33

标签: c# entity-framework unit-testing asp.net-mvc-4

您好我在mvc4中的实体框架中生成了一个CRUD操作。现在我单元测试类...我在控制器中使用以下代码进行创建

[HttpPost]
public ActionResult Create(Member member)
{
    if (ModelState.IsValid)
    {
        db.Members.Add(member);
        db.SaveChanges(); 
        return RedirectToAction("Index");
    }

    return View(member);
}

我正在使用测试代码进行测试,

[TestMethod]
public void Create()
{
    MemberController me = new MemberController();
    var mem = new Member();
    mem.MemID = 123;
    mem.MemName = "sruthy";
    var result = (RedirectToRouteResult)me.Create(mem);
    Assert.AreEqual("Index", result.RouteValues["action"]);
}

我只是尝试测试创建类。但它显示以下错误

测试失败:创建

  

消息:测试方法SmpleTest.MemberTest.Create抛出异常:   System.data> ProviderIncomactibleException:发生错误   从数据库中获取提供者信息。这可以通过   实体框架使用不正确的连接字符串。检查内心   有关详细信息的异常并确保连接字符串是   正确.---> System.data.ProviderIncompatibleException:提供了   不返回ProviderManifestToken字符串.--->   System.Data.SqlClient.SqlException:网络相关或插入   建立与SQL Server的连接时发生特定错误。   找不到服务器或无法访问服务器。改变了   实例名称正确,SQL Server配置为允许   远程连接。(proider:SQL网络接口,错误:26-错误   找到指定的服务器/实例)

这是我的连接字符串

<connectionStrings>
    <add name="SampleDataContext" connectionString="Data Source=(LocalDb)\v11.0;Initial      Catalog=Sample;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Sample.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>

通常使用此连接字符串创建操作。任何人都可以帮我确定问题。谢谢

1 个答案:

答案 0 :(得分:1)

请在测试用例项目中添加连接字符串,并且返回操作为Create而不是Index