testingwebforms应用程序的最佳方式是什么(ASP.NET)

testing我的webforms应用程序的最佳方法是什么?

看起来人们都喜欢Watin和selenium。

更新鉴于WatiN已经停滞了一年多了,我会直接指出任何需要通过web uitestingselenium的人 ,这是由许多贡献者持续使用和开发的,并被Google积极使用。

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

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

  • 什么是对ASP网页(C#)进行unit testing的最佳方法?
  • .Net的networking应用程序testing(watintestinglogging器)
  • 你如何以编程的方式填写表单和'发布'的网页?

只是想知道,为什么你会打电话给WatiN一个单元testing工具? 上次我查了一下,它运行了集成testing。

最好的办法是将所有不依赖于HttpContext的代码移动到一个单独的程序集中,像往常一样运行unit testing。 其余的可以用Ivonna来testing。 她没有testing客户的行为,这是WatiN可以提供帮助的地方; 不过,如果你想单独testing你的页面或控件,她是你唯一的select。

这是Webforms的最大缺点 – 就所有的实际原因而言,在testing控制器的unit testing等方面都是无法testing的。

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

我倾向于将UI代码中的buisness逻辑分开的方法。 这里有一篇文章描述了一个unit testing友好模式(Model-View-Presenter)

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

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

“WatiN是.NET中的Web应用程序testing,这个testinglogging器将通过在embedded式IE浏览器中logging您的点击来为您生成大量的源代码”(来自Scott Hanselman的博客 – 我发现感谢StackOverflow上的另一篇文章

WaitIn网站

我会用WATIR(Ruby中的Web应用程序testing) – http://wtr.rubyforge.org/ 。 我们(Acsys Interactive)已经使用了大约一年,这个工具非常棒。

我在.NET中开发了一个简单的包装器,以便可以从unit testing中执行我的WATIR脚本。 框架是令人难以置信的,你有完整的Rubyfunction在你身后。 支持Firefox和Safari(FireWatir项目)。

这与WATIN非常相似(实际上我认为WATIN受到WATIR的启发),但是我发现WATIR社区比WATIN更大。

那里有testinglogging器,你可以使用和大量的教程。

这真的是你的select。 如果你觉得testing需要在.NET中,而你不想支持其他语言,那么你的select是WATIN。 另一方面,如果你想尝试一个有趣的和相当强大的脚本语言(这是什么Ruby),然后去WATIR。

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

这是Watin,Watir和Selenium的综述http://adamesterline.com/2007/04/23/watin-watir-and-selenium-reviewed/

显然,Selenium对于testing者来说工作起来相当缓慢,但是如果你会注意到,正如其中一个评论指出的那样,由于它支持多个浏览器,情况就是这样。

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

我有一个很好的使用selenium的经验。 Webtesting可能非常脆弱,但是这里有一篇来自我的博客的文章,我在这里谈论如何使testing变得更加脆弱。 http://www.unit-testing.net/CurrentArticle/How-To-Make-Web-Tests-Less-Fragile.html