我有以下单元测试:
[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/