HI那里
我想知道是否有更好的方法来测试视图在MVC中呈现。
我想也许我应该将视图呈现为字符串,但也许有更简单的方法?
基本上我想知道的是,给定动作的视图是否已经呈现而没有错误 我已经在测试视图模型,但我想看到渲染视图给出正确的 ViewData.Model 工作
答案 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)收到详细的错误。