如何测试PARTIAL视图是在C#ASP .NET MVC中呈现的
我有一个视图,它内部有部分视图渲染:
@Html.RenderPartial("partial", Model.SomeModelProperty);
还有一个控制器,它返回这个视图
public ActionResult Action() { ... var model = new SomeModel(){SomeModelProperty = "SomeValue"} return View("view", model); }
如何测试视图呈现我知道:
[TestMethod] public void TestView() { ... var result = controller.Action(); // Assert result.AssertViewRendered().ForView("view").WithViewData(); }
但是当我打电话的时候
result.AssertPartialViewRendered().ForView("partial").WithViewData();
我收到此错误消息
Expected result to be of type PartialViewResult. It is actually of type ViewResult.
我究竟做错了什么?
我究竟做错了什么?
您正在测试控制器:此类测试实质上是模拟视图,只是validation控制器是否返回了预期的视图(和模型)。
因为渲染部分视图“部分”的视图“视图”不参与测试,所以您无法测试它是否正在按预期执行。
一般来说,大多数人没有unit testing视图; 但如果你想这样做,请查看此博客或谷歌“MVCunit testing视图”
更改
return View(model);
至
return PartialView(model);
例外说明了一切。 您期望部分视图结果,但您将返回视图结果。