我真的非常缺乏独立测试视图控制器的能力。方式RSpec does it。
我想要做的是在渲染视图上执行断言(其中不涉及控制器!)。为了做到这一点,我应该提供所需的Model,ViewData以及 HttpContextBase 中的一些细节(我们何时会摆脱HttpContext!)。
到目前为止,我还没有发现允许这样做的任何事情。它也可能在很大程度上取决于所使用的ViewEngine。
视图可能包含的内容列表如下:
另请注意,我不是在谈论客户端测试,因此Selenium根本就与它无关。它只是简单的.NET测试。
那么有没有选择真正进行视图测试?
谢谢,
德米特里。
答案 0 :(得分:2)
测试完整视图的主要问题是asp.net视图引擎在提供的上下文中调用Response.Write,而不是在提供的编写器上调用。
以上情况不是测试部分视图的情况,因此对于那些您可以使用此解决方案: http://www.brightmix.com/blog/renderpartial-to-string-in-asp-net-mvc/
还有其他视图引擎允许您测试视图,即Spark。
PS。 asp.net mvc中的概念是你应该能够通过使用ViewEngine来测试视图,但据我所知,asp.net mvc团队没有解决现有的asp.net引擎限制能够这样做对于他们的视图引擎。
答案 1 :(得分:1)
你可能想看看Eric Hexter和MVCContrib的工作人员正在研究的UI测试助手。我没有机会深入研究它,但它可能对你有帮助。我发现此链接显示了一些语法:http://codepaste.net/cw8ie4
我很想知道你发现了什么,因为我很快就会这样做。
答案 2 :(得分:0)
有兴趣知道您是否找到了.Net的任何内容。我们当前的应用程序是WPF,但我们坚持信任Cucumber来触摸我们所有功能中的视图...所以是的,这很糟糕。希望你找到一些东西并更新我们。