我确实严重丧失了独立测试 View 的能力的 Controller 。方式RSpec does it。
我想做的是在呈现的 View 上执行断言(不涉及任何 Controller !)。为了做到这一点,我应该提供所需的Model,ViewData以及 HttpContextBase 中的一些详细信息(何时摆脱HttpContext!)。
到目前为止,我还没有发现任何可以做到的事情。另外,它可能在很大程度上取决于所使用的ViewEngine。
View 可能包含的内容列表是:
还请注意,我不是在谈论客户端测试,因此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/