测试webforms应用程序的最佳方法是什么(ASP.NET)

时间:2008-09-23 01:01:47

标签: asp.net webforms automated-tests

测试我的网络表单应用程序的最佳方法是什么?

看起来人们喜欢Watin和硒。

8 个答案:

答案 0 :(得分:29)

只是想知道,为什么你会称WatiN为单元测试工具?上次我检查时,它运行了集成测试。

最好的方法是将所有不依赖于HttpContext的代码移动到单独的程序集并像往常一样运行单元测试。其余的可以使用Ivonna进行测试。她不测试客户行为,这是WatiN可以提供帮助的地方;但是,如果您想单独测试您的页面或控件,她是您唯一的选择。

答案 1 :(得分:19)

更新鉴于WatiN已经停滞了一年多,我会指示任何需要进行网络测试的人selenium,它会持续使用&由许多贡献者开发,并由Google积极使用。

WatiN是我发现的最好的。它集成到Visual Studio单元测试或nunit&您可以在浏览器中执行您需要的任何操作(单击链接,提交表单,查找文本/图像等)。

请参阅以下问题以获得类似的答案:

答案 2 :(得分:15)

这是Webforms的最大缺点 - 出于各种实际原因,它在测试控制器的单元测试等方面是不可测试的。

这是MVC框架的主要优势之一。

答案 3 :(得分:1)

我倾向于支持将业务逻辑从UI代码中分离出来的方法。 这是一篇描述单元测试友好模式的文章(Model-View-Presenter)

http://www.unit-testing.net/CurrentArticle/How-To-Use-Model-View-Presenter-With-AspNet-WebForms.html

答案 4 :(得分:0)

我会使用像WaitIn这样的工具:

“WatiN是.NET中的Web应用程序测试,此测试记录器将通过在嵌入式IE浏览器中记录您的点击来为您生成大量的源代码”(来自Scott Hanselman's blog - 我发现感谢另一篇帖子StackOverflow的

WaitIn website

答案 5 :(得分:0)

我将使用WATIR(Ruby中的Web应用程序测试) - http://wtr.rubyforge.org/。我们(Acsys Interactive)已经使用了大约一年,而且工具很棒。

我在.NET中开发了一个简单的包装器,以便我可以从单元测试中执行我的WATIR脚本。该框架令人难以置信,您拥有完整的Ruby功能。支持Firefox& Safari(FireWatir项目)。

它与WATIN非常相似(事实上我认为WATIN受到了WATIR的启发),但我发现WATIR社区比WATIN社区大得多。

那里有测试记录器,你可以使用和大量的教程。

这是你的选择。如果您觉得测试需要在.NET中,并且您不想支持任何其他语言,那么您的选择就是WATIN。另一方面,如果你想尝试一种有趣且功能强大的脚本语言(那就是Ruby),那么就选择WATIR。

WATIN的问题,是否支持FireFox / Safari?

答案 6 :(得分:0)

以下是Watin,Watir和Selenium的评论 http://adamesterline.com/2007/04/23/watin-watir-and-selenium-reviewed/

显然Selenium对测试人员工作的速度相当慢,但是如果您注意到,正如其中一条评论所指出的那样,这只是因为它支持多个浏览器。

然而,有一个WatiN的CTP(社区技术预览版),它支持Internet Explorer和FireFox自动化。

答案 7 :(得分:0)

我使用Selenium有很棒的经验。 Web测试可能非常脆弱,但是我的博客中有一篇文章,我在这里讨论如何使测试不那么脆弱。 http://www.unit-testing.net/CurrentArticle/How-To-Make-Web-Tests-Less-Fragile.html