1

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

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

A- 1. 我如何将关注点分开到足以单独对我的功能进行单元测试?

A- 2. 我应该最关注什么测试以及我应该在哪里划清界限?

A- 3. 单个单元测试应该涵盖哪些内容,我应该在什么时候将其分解为 2 个单元测试?

所以我使用 Code First 我已经建立了一个产品模型、控制器和视图:

    //
    // 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)。

4

2 回答 2

2

我发现这本书 Pro ASP.NET MVC 4 是一个很好的资源。它很好地覆盖了使用 EF 的 MVC 项目上下文中的单元测试。

于 2013-03-03T14:40:31.680 回答
1

我建议“Unity,通过单元测试进行依赖注入”

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

链接1

链接2

于 2013-03-03T16:23:48.570 回答