我有以下单元测试:

    [TestMethod]
    public void Add_Returns_Edit_View()
    {
        // Act
        ActionResult result = _controller.Add();

        // Verify
        result.AssertViewRendered().ForView("Edit");
    }

这应该过去了,因为“添加”操作将返回“编辑” View 。但是,此断言失败,并带有以下异常
MvcContrib.TestHelper.ActionResultAssertionException: Expected view name 'Edit', actual was '~/Views/JobSearch/Edit.cshtml'

为什么 View 名称返回为完整路径名?这可能是由于我使用了T4MVC导致的吗?如果可以,该如何通过?

编辑Add View 如下所示:
    public virtual ActionResult Add()
    {
        return View(MVC.JobSearch.Views.Edit, new JobSearch());
    }

最佳答案

您可以像这样对T4MVC值进行测试:

result.AssertViewRendered().ForView(MVC.JobSearch.Views.Edit);

我认为这是更清洁的解决方案...如果您更好,请告诉我:)

关于c# - 为什么mvccontrib的AssertViewRendered()。ForView ("Edit")由于 View 名称为完整的cshtml路径而失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5509123/

10-13 06:08