Entity framework ASP.NET MVC4代码优先和单元测试教程/建议

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

我通常不是在这里寻找每个问题的答案,而是寻找更多学习资源的链接,也许还有关于我的一些观点的建议

我正试图在我的一个项目中实现单元测试,但我找不到任何足够详细的教程(最好是视频教程)

A-1。如何将关注点分离到足以单独对功能进行单元测试

A-2。我最应该关注的测试是什么?我应该在哪里划定界限

A-3。一个单独的单元测试应该包括什么?我应该在什么时候将它分解为两个单元测试

因此,我首先使用代码我建立了产品模型、控制器和视图:

    //
    // 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项目上下文中的单元测试。

我建议“单元测试的统一、依赖注入”

更多详情,请访问以下链接