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 我们可以使用MVC的单元测试视图(';V';)吗?_Asp.net Mvc_Unit Testing - Fatal编程技术网

Asp.net mvc 我们可以使用MVC的单元测试视图(';V';)吗?

Asp.net mvc 我们可以使用MVC的单元测试视图(';V';)吗?,asp.net-mvc,unit-testing,Asp.net Mvc,Unit Testing,重复: 有没有办法打开单元测试视图? 我确信我们可以测试模型和控制器,但不知道如何对视图进行单元测试 这个视图值得测试吗?视图现在没有放弃代码吗?那么你打算测试什么呢?如果您正在测试控制器,那么您只需要一个成功的视图结果来显示视图工作。这将开始拖累任何规模较大的项目进行持续集成和构建,而不是麻烦地预编译视图或其他任何东西。据我所读(在Steven Sanderson的Pro ASP.NET MVC框架中),视图不值得测试。ASP.NET MVC视图可以使用各种引擎生成,例如默认的轻量级ASPX,

重复:

有没有办法打开单元测试视图? 我确信我们可以测试模型和控制器,但不知道如何对视图进行单元测试


这个视图值得测试吗?

视图现在没有放弃代码吗?那么你打算测试什么呢?如果您正在测试控制器,那么您只需要一个成功的视图结果来显示视图工作。这将开始拖累任何规模较大的项目进行持续集成和构建,而不是麻烦地预编译视图或其他任何东西。

据我所读(在Steven Sanderson的Pro ASP.NET MVC框架中),视图不值得测试。ASP.NET MVC视图可以使用各种引擎生成,例如默认的轻量级ASPX,或者。对于ASPX输出,您可以运行一些HTML语法检查器工具,对于其他视图引擎,视图成功编译应该是一个足够好的测试;)

我不认为对视图进行单元测试有什么意义,因为它们不包含太多逻辑。但是,您可以使用类似的工具进行一些集成测试/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"));
  }
}
您不应该尝试使用这样的工具来测试所有内容。选择应用程序的一些关键功能,并为它们编写测试

你可以。这很有帮助。否则,我认为这不值得。毕竟,你只对两件事感兴趣。视图是否编译,是否有任何异常(null、越界异常或类似)

有一些人声称你不应该在视图中包含任何逻辑。为任何事情写助手。在这种情况下,编译几乎就是您想要的一切


我们决定投资于WatiN测试。它测试视图,同时测试整个应用程序。有一些很好的助手,但需要经常维护。

对于那些在测试视图中看不到价值的人。。。。如何确保视图在元素上具有正确的属性,或者视图绑定正确

许多人回答“在更高的层次上”(比如运行站点和使用诸如selenium或等效工具)


然而,这些技术几乎不可能证明错误源在视图本身,并且还需要对服务器端代码进行大量更改,以便以有针对性的方式呈现视图。

这是对视图进行单元测试的重复?对于您的视图,您希望测试什么?他们可能需要单元测试哪些功能?如果是客户端功能,则对脚本进行单元测试;如果是服务器端,则对控制器进行单元测试。。。严肃地说:关于视图的测试是什么?我肯定不会在我的项目中有任何.aspx.cs文件,但我们确实在aspx页面的服务器标记中编写了一些代码。Thinkg是这样的,这些代码应该非常简单,不需要任何详细的测试。如果您有很多条件和循环,那么您需要考虑更改控制器以提供更好的结构化模型。我希望这有帮助,MVC绝对值得费心:)Url.Content(“~”/something)值得为它编写一些自动化测试。验证这些文件是否仍然存在或是否正确解决是值得的自动化。我同意Maslow的观点,应该对此进行自动化测试,但我建议这要比单元测试(严格意义上)做得更远。也许可以使用Specflow之类的工具,或者更进一步地使用selenium测试来检查链接是否指向您期望的位置以及是否可以遵循。视图可能会编译,但仍然无法找到其内容引用。WatiN的投资结果如何?您可能会以这种方式开发整个系统集成测试,因为现在没有WatiN的单元测试了,是吗?你可能会改用硒,还是使用静水?无论如何让我们知道这次体操比赛的结果。。。我可能不是唯一感兴趣的人。这更有可能是系统集成测试,而不仅仅是基本的集成测试。大爆炸风格。。。我只是想澄清一下。。。