如何测试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); 

例外说明了一切。 您期望部分视图结果,但您将返回视图结果。