Entity framework ASP.NET MVC4代码优先和单元测试教程/建议
我通常不是在这里寻找每个问题的答案,而是寻找更多学习资源的链接,也许还有关于我的一些观点的建议 我正试图在我的一个项目中实现单元测试,但我找不到任何足够详细的教程(最好是视频教程) A-1。如何将关注点分离到足以单独对功能进行单元测试 A-2。我最应该关注的测试是什么?我应该在哪里划定界限 A-3。一个单独的单元测试应该包括什么?我应该在什么时候将它分解为两个单元测试 因此,我首先使用代码我建立了产品模型、控制器和视图:Entity framework ASP.NET MVC4代码优先和单元测试教程/建议,entity-framework,asp.net-mvc-4,ef-code-first,Entity Framework,Asp.net Mvc 4,Ef Code First,我通常不是在这里寻找每个问题的答案,而是寻找更多学习资源的链接,也许还有关于我的一些观点的建议 我正试图在我的一个项目中实现单元测试,但我找不到任何足够详细的教程(最好是视频教程) A-1。如何将关注点分离到足以单独对功能进行单元测试 A-2。我最应该关注的测试是什么?我应该在哪里划定界限 A-3。一个单独的单元测试应该包括什么?我应该在什么时候将它分解为两个单元测试 因此,我首先使用代码我建立了产品模型、控制器和视图: // // GET: /Product/Edit/5
//
// GET: /Product/Edit/5
public ActionResult Edit(int id = 0)
{
Product product = db.Products.Find(id);
if (product == null)
{
return HttpNotFound();
}
return View(product);
}
//
// POST: /Product/Edit/5
[HttpPost]
public ActionResult Edit(Product product)
{
if (ModelState.IsValid)
{
db.Entry(product).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(product);
}
[TestMethod]
public void TestEditView() {
// Arrange
ProductController controller = new ProductController();
// Act
ViewResult result = controller.Edit(2) as ViewResult;
// Assert
//make sure theres a result
Assert.IsNotNull(result);
//make sure it's the right results
Assert.AreEqual("Edit", result.ViewName);
//test a dropdownlist exists
Assert.IsNotNull(result.ViewBag.CategoryID);
}
B-1。我应该如何测试我的POST方法?我是否应该为数据管理添加一个额外的层,这样我就可以编写单元测试来单独进行测试
B-2。我应该更多地关注查看是否返回,还是更多地关注数据
(例如:如果我有一个Edit.cshtml,那么它将始终返回(为什么要测试它?),返回的数据更重要,不是吗?或者我的黑框更重要?或者我应该涵盖所有3个?)
B-3。我应该分解单元测试来分别测试视图和数据吗
同样,还有很多问题,但我想我主要是在寻找示例、教程和学习如何尽可能最好地使用单元测试(甚至MVC)的方法。我发现Pro ASP.NET MVC 4这本书是一个很好的资源。它很好地涵盖了使用EF的MVC项目上下文中的单元测试。我建议“单元测试的统一、依赖注入” 更多详情,请访问以下链接