Asp.Net MVC如何测试呈现的视图

时间:2010-05-31 12:12:02

标签: asp.net-mvc unit-testing

HI那里

我想知道是否有更好的方法来测试视图在MVC中呈现。

我想也许我应该将视图呈现为字符串,但也许有更简单的方法?

基本上我想知道的是,给定动作的视图是否已经呈现而没有错误 我已经在测试视图模型,但我想看到渲染视图给出正确的 ViewData.Model 工作

2 个答案:

答案 0 :(得分:3)

使用MvcContrib TestHelpers库执行断言,从您的操作返回特定视图:

var sampleController = new SampleController();
sampleController.New().AssertViewRendered().ForView("New").WithViewData<SomeModel>();

要进行断言以确保将正确的数据返回到视图,请从ActionResult

中提取模型
var result = (ViewResult)sampleController.New();
((SomeModel)result.ViewData.Model).SomeProperty.ShouldNotBeNull();

这就是你的单元测试应该去的。

对于端到端的自动化功能/ GUI测试,您可能需要考虑使用Selenium之类的工具。

答案 1 :(得分:0)

您可以为项目启用视图编译。这样,除非您修复问题,否则项目将无法编译。在.csproj文件中编辑此行:

<MvcBuildViews>false</MvcBuildViews>使用true而不是false

我也可以使用ELMAH(安装它查看NuGet),你可以通过电子邮件(包括YSOD)收到详细的错误。

Source