答案 0 :(得分:9)
你可以enable compilation of MVC views。这有很大帮助。否则,我认为这不值得。毕竟,你感兴趣的只有两件事。视图是否编译并且你得到任何异常(null,超出范围的例外或类似)?
有些人声称您不应在视图中包含任何逻辑。为任何事情写助手。在这种情况下,编译几乎是你想要的一切。
我们决定投资WatiN测试。它测试视图,同时测试整个应用程序。有一些好帮手,但需要不断维护。
答案 1 :(得分:7)
现在还没有看到废弃的代码?那你要测试什么?如果您正在测试控制器,那么您只需要一个成功的视图结果来显示视图的工作原理。而不是去预编译视图或其他什么的麻烦,这将开始拖延任何大型项目在持续集成和构建方面。
答案 2 :(得分:3)
根据我的阅读(在Steven Sanderson的Pro ASP.NET MVC框架中),视图不值得测试。 ASP.NET MVC视图可以使用各种引擎生成,例如默认的轻量级ASPX,或者例如http://www.stringtemplate.org/。对于ASPX输出,您可能运行一些HTML语法检查工具,对于其他视图引擎,视图编译成功的事实应该是一个足够好的测试;)
答案 3 :(得分:3)
我没有看到单元测试视图的重点,因为它们没有太多逻辑。但是,您可以使用WatiN等工具进行一些集成测试/ UI测试。
用WatiN编写的测试示例:
[Test]
public void SearchForWatiNOnGoogle()
{
using (IE ie = new IE("http://www.google.com"))
{
ie.TextField(Find.ByName("q")).TypeText("WatiN");
ie.Button(Find.ByName("btnG")).Click();
Assert.IsTrue(ie.ContainsText("WatiN"));
}
}
您不应该尝试使用这样的工具测试所有内容。选择应用程序的一些关键功能,并为它们编写测试。
答案 4 :(得分:0)
对于那些在测试视图中没有看到值的人....如何确定视图在元素上具有正确的属性,或者它是否正确绑定?
许多人回答“更高层次”(例如运行网站并使用硒等工具)。
然而,这些技术几乎不可能证明错误的来源在视图本身中,并且还需要对服务器端代码进行大量更改,以便可以有针对性地呈现视图。