我有一个控制器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);
}
答案 0 :(得分:0)
无效的对象名称'dbo.Projects'。是sql server的一个例外。这意味着您的表在dbo架构中不存在。
检查您是否已连接到正确的数据库并且已运行迁移。