ASP.NET MVC2中的测试视图(ala RSpec)

Dmy*_*iak 9 asp.net-mvc unit-testing rspec views asp.net-mvc-2

我真的很想念独立于控制器测试视图的能力.RSpec的方式.

我想要做的是在渲染视图上执行断言(不涉及控制器!).为了做到这一点,我应该提供必需的Model,ViewData以及HttpContextBase中的一些细节(我们何时会摆脱HttpContext!).

到目前为止,我还没有找到任何允许这样做的东西.它也可能在很大程度上取决于所使用的ViewEngine.

视图可能包含的内容列表如下:

  • 部分视图(可能深层嵌套).
  • 母版页(或其他视图引擎中的类似页面).
  • Html助手生成链接和其他元素.
  • 通常几乎任何常识的范围:).

另请注意,我不是在谈论客户端测试,因此Selenium根本就与它无关.它只是简单的.NET测试.

那么有没有选择实际进行视图测试?

谢谢,
德米特里.

egl*_*ius 2

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

上述情况不适用于测试部分视图,因此您可以使用此解决方案: http ://www.brightmix.com/blog/renderpartial-to-string-in-asp-net-mvc/

还有其他视图引擎允许您测试视图,即 Spark。

附:asp.net mvc 中的概念是您应该能够使用 ViewEngine 来测试视图,但据我了解,asp.net mvc 团队并没有解决现有的 asp.net 引擎限制,以便能够做到这一点对于他们的视图引擎。