Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 什么时候应该对Asp.net MVC视图进行单元测试_Asp.net Mvc_Unit Testing_View - Fatal编程技术网

Asp.net mvc 什么时候应该对Asp.net MVC视图进行单元测试

Asp.net mvc 什么时候应该对Asp.net MVC视图进行单元测试,asp.net-mvc,unit-testing,view,Asp.net Mvc,Unit Testing,View,假设您有一个项目,许多开发人员在同一个Asp.net MVC应用程序上工作。项目是长期运行的,所以团队成员会随着时间的推移而变化。这意味着在这段时间里,我们达到了某种程度,某些观点似乎(完全)与其他观点不同。标记方面 为了使UI在一段时间内尽可能保持一致,假设初始团队开发了一种流畅的Html助手方法,用于创建通用视图结构。即: Html.CreateHeader("Header text") .CreateForm(Url.Action(...)) .AddS

假设您有一个项目,许多开发人员在同一个Asp.net MVC应用程序上工作。项目是长期运行的,所以团队成员会随着时间的推移而变化。这意味着在这段时间里,我们达到了某种程度,某些观点似乎(完全)与其他观点不同。标记方面

为了使UI在一段时间内尽可能保持一致,假设初始团队开发了一种流畅的Html助手方法,用于创建通用视图结构。即:

Html.CreateHeader("Header text")
    .CreateForm(Url.Action(...))
    .AddSegment("Person")
    .EditorFor(model => model.Person)
    .AddSegment("...")
    .EditorFor(model => model.Company)
    ...
虽然这确实为日常Asp.net MVC视图代码添加了额外的抽象,但它使视图随着时间的推移保持一致。当然,当使用这些流利的助手时

但是。即使这些助手方法都可以进行单元测试,我想知道测试视图本身有什么好处

问题
  • 我的观点是,您不需要对任何静态的东西(即视图)进行单元测试。因此,除非视图具有丰富的客户端功能,否则不应进行任何测试。但如果确实如此,您将使用ie.QUnit库测试Javascript代码。这个想法正确吗?或者测试本质上是静态的东西,我们只测试某些元素及其内容的存在,这真的有意义吗

  • 视图的其他哪些方面可以测试,为什么要测试

  • 在我的开发过程中,我注意到单元测试应该只在非平凡的代码上进行。换句话说,至少有一个分支的方法应该被测试,而其他方法的长度足够长,即使没有分支,它们也不能完全清楚地知道它们在做什么

    我倾向于避免为本质上微不足道的方法编写单元测试,因为它们除了消耗开发人员的时间之外没有任何帮助


    视图应该只显示提供给它们的数据,因此无论如何都不应该有任何逻辑进行测试


    在我看来,视图的“测试”属于集成测试。(检查一切是否正常,链接是否指向正确的位置等)

    这正是我的观点。它们应该使用WatinN或Selenium等工具进行测试,而不是像通常编写单元测试那样使用代码测试。井集成测试也主要以这种方式编写。直到你同意的观点为止。WatiN(或替代品)应该能够涵盖大多数情况,尽管在演示中可能也应该有某种人眼方法,因为WatiN还不能自动检测丑!(尽管可能有一个程序可以)