asp.net-mvc - ASP.NET MVC2(ala RSpec)中的测试 View

标签 asp.net-mvc unit-testing asp.net-mvc-2 views rspec

我确实严重丧失了独立测试 View 的能力的 Controller 。方式RSpec does it

我想做的是在呈现的 View 上执行断言(不涉及任何 Controller !)。为了做到这一点,我应该提供所需的Model,ViewData以及 HttpContextBase 中的一些详细信息(何时摆脱HttpContext!)。

到目前为止,我还没有发现任何可以做到的事情。另外,它可能在很大程度上取决于所使用的ViewEngine。

View 可能包含的内容列表是:

  • 部分 View (可以嵌套得很深)。
  • 母版页(或其他 View 引擎中的类似页)。
  • 生成链接和其他元素的HTML帮助器。
  • 通常,在常识范围内,几乎所有东西都可以:)。

  • 还请注意,我不是在谈论客户端测试,因此Selenium根本与它无关。这只是普通的.NET测试。

    那么,是否有任何选项可以实际进行 View 测试?

    谢谢,
    德米特里(Dmitriy)。

    最佳答案

    测试完整 View 的主要问题是,asp.net View 引擎在提供的上下文中(而不是在提供的编写器上)调用Response.Write。

    以上不是测试部分 View 的情况,因此对于那些您可以使用此解决方案:
    http://www.brightmix.com/blog/renderpartial-to-string-in-asp-net-mvc/

    还有其他 View 引擎可以让您测试 View ,即Spark。

    ps。 asp.net mvc中的概念是您应该能够使用ViewEngine来测试 View ,但是据我所知,asp.net mvc团队无法解决现有的asp.net引擎限制,因此无法做到这一点。为他们的 View 引擎。

    关于asp.net-mvc - ASP.NET MVC2(ala RSpec)中的测试 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2781027/

    相关文章:

    c# - ASP.NET MVC Controller 单元测试失败

    asp.net-mvc - 从表达式构建 URL

    asp.net-mvc - vNext 重定向到登录返回 404

    c# - 货到付款插件在 NopCommerce 的付款方式页面中不可用

    unit-testing - 如何使用 Selenium 连续运行单个测试用例?

    python - 使用 Factory boy ImageFiled 导致 missing attribute _committed 错误

    asp.net-mvc-2 - knockout.js 将表单加载到 viewModel 中

    asp.net-mvc - ASP.NET MVC - 复杂模型验证

    c# - 使用 jQuery Ajax 将对象列表传递给 MVC Controller 方法

    javascript - AngularJS 模拟 - 使用 jasmine 进行单元测试的相同服务、不同功能