即使对象有效,对象名也无效

时间:2015-09-24 11:31:04

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

我有一个控制器actionresult的单元测试。当我运行单元测试时,它会在动作结果的db.SaveChanges();部分中断。当我测试实际的方法(通过web浏览器和数据库中的数据)时,它很好,但是当我运行我的单元测试它失败。我收到的错误是:用户代码未处理DbUpdateException。查看内部异常,内部异常:{"Invalid object name 'dbo.Projects'."} 我正在使用entityframeworks codefirst结构,这是我的代码:

[ValidateAntiForgeryToken]
[Authorize(Roles = "A")]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult AddProject(Projects project)
{
   if (ModelState.IsValid)
   {
      using (var db = new MyDbContext())
      {
         db.ProjectModels.Add(project);
         db.SaveChanges();
      }
      return RedirectToAction("ListOfProjects", "Project");
   }
   return View(project);
}


[TestMethod()]
public void AddProjectTestWithModl()
{
    var controller = new AdminController();
    var model = new Projects() { Name = "Name", Description = "Desc", Duration = "1 month" };
    var result = controller.AddProject(model) as ViewResult;
    Assert.AreEqual(model, result.ViewData.Model);
}

1 个答案:

答案 0 :(得分:0)

无效的对象名称'dbo.Projects'。是sql server的一个例外。这意味着您的表在dbo架构中不存在。

检查您是否已连接到正确的数据库并且已运行迁移。