5

在 ASP.NET WebForms 中,我使用 Selenium 在多个项目中记录和运行我的 Web 和 UI 测试。

我知道我们可以很容易地在 ASP.NET MVC 中对控制器和模型进行单元测试。

视图呢?

你还会测试视图吗?如果不是,如何确保由控制器操作呈现的视图包含预期的逻辑和行为?

我猜 WebForms 中使用的相同 Web 测试工具,例如 WatiN 和 Selenium,也可以在这里使用,不确定?

如果是这样,WebForms 中的 WebTesting 和 MVC 中的 WebTesting 有什么区别?

4

2 回答 2

8

视图呢?

Erm、硒和 WatiN。

真的,就集成测试而言,是什么让您认为 ASP.NET MVC 视图与经典 ASP.NET WebForms 有什么不同?我的意思是他们都在一天结束时吐出 HTML。这就是浏览器和像 Selenium 这样的东西所理解的。谁吐出这个 HTML 并不重要。您在集成测试中关心的是,当用户 lambda 在 gamma 文本字段中输入 beta 后单击按钮 alpha 时Welcome User Phi,您会在生成的 HTML 页面上得到这个,不是吗?您真的不关心诸如 ASP.NET MVC 之类的东西,甚至更不关心诸如 ASP.NET MVC 视图之类的东西。

顺便说一句,您可以将 Selenium 和 WatiN 与 PHP 一起使用。或者如果你是 Java Servlets 的粉丝的话。您使用的服务器端技术并不重要。集成测试中重要的是您之前定义的场景。

如果是这样,WebForms 中的 WebTesting 和 MVC 中的 WebTesting 有什么区别?

没有任何。

于 2013-01-03T21:34:25.767 回答
1

我认为 ASP.NET MVC 和 WebForms 在浏览器驱动的集成测试方面存在差异,因为这些框架的不同服务器端方面导致了不同的测试方法。

采用一个可以帮助解决此问题的框架,例如Seleno。它在引擎盖下使用 Selenium,但将所有浏览器交互抽象为 C# 页面对象,然后您可以在 C# 测试中非常流畅地使用它。

有许多扩展和约定可以帮助许多常见的浏览器自动化操作,例如单击按钮或从表中提取数据。

但是我为什么要提出这个作为这个问题的答案呢?Seleno 对于 .NET MVC 来说特别方便,因为页面对象可以是通用的,为特定视图(或部分视图)键入到 ViewModel 中,在为该视图编写相应的页面对象时创建强类型关联。

正是 MVC 的 ViewModel 方面开启了这种方法。我认为用 WebForms 来做这件事会比较棘手。

于 2013-01-03T21:59:30.517 回答