【问题标题】:Asp.Net MVC How to test that the view renderedAsp.Net MVC 如何测试视图是否呈现
【发布时间】:2010-05-31 12:12:01
【问题描述】:

你好

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

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

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

【问题讨论】:

标签: asp.net-mvc unit-testing


【解决方案1】:

使用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 这样的工具。

【讨论】:

    【解决方案2】:

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

    &lt;MvcBuildViews&gt;false&lt;/MvcBuildViews&gt; 使用真而不是假

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

    Source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      相关资源
      最近更新 更多