对ASP.NET 2.0网页进行单元测试的最佳方法是什么?

有什么建议么?在C#中使用visual studio。

是否有任何特定的工具或方法来解决这个问题?

更新:

对不起,我应该更具体些。我正在使用ASP.Net 2.0,并且正在寻找更多类似于jUnit for Java的工具。我看了一下NUnit和NUnitAsp,看起来很有希望。我甚至不知道Visual Studio Pro有一个测试套件,所以我会看看所有这些选项(今年夏天我刚开始使用Visual Studio / Asp.net / C#)。

0

6 答案

男孩,这是一个很普遍的问题。我会尽我所能,但准备好看到我错过一英里。

假设

  1. 您使用的是ASP.NET,而不是普通的ASP
  2. 你不是真的想测试你的网页,而是测试它们后面的逻辑。单元测试实际的.ASPX页面是相当痛苦的,但有框架可以做到这一点。 NUnitAsp 就是其中之一。

首先要做的是组织(或计划)你的代码,以便测试它。当时最流行的两种设计模式似乎是MVP和MVC。两者都将应用程序的逻辑视图分开,以便您可以在视图(网页)不受阻碍的情况下测试逻辑。

MVP或MVC将会有效。 MVC具有微软框架几乎准备就绪的优势。

一旦你选择了鼓励可测试性的框架模式,你就需要使用单元测试工具。 NUnit 是一个很好的起点。 Visual Studio Professional有一个构建它的测试套件,但NUnit + TestDrive.NET 也适用于IDE。

这是一种霰弹枪的信息。我希望有一些,如果它击中。实用书架有一本有关该主题的好书

0
额外
NUnitAsp不再被支持:编写它的人提出了一个有效的观点:“知道的人正在使用表示层来使ASP.NET变得非常薄,以至于像NUnitAsp这样的工具没有任何帮助。”
额外 作者 Jeremy McGee,
Visual Studio 2008带有MSTest,可以实现非常无缝的单元测试功能。同样关于ASP.NET MVC,当您创建一个新项目时,Visual Studio也会要求您为它构建一个测试项目。我以前使用MVP和一些MVC,使测试变得更容易。
额外 作者 Jack Marchetti,
鉴于从xUnit.net [ xunit.codeplex.com/ 中选择了单元测试框架,NUnit,和MSTest,我会选择xUnit.net,由微软的codeplex.com经理Jim Newkirk和Brad Wilson编写。 JN也被列为NUnit 2.0的创建者。至少对我来说,当微软的高级员工像JN和BW选择忽略MSTest和NUnit时,它就会说些什么。同样,ASP.NET MVC是为可测试性而构建的,请参阅Rob Conery的 blog.wekeroad.com/blog/… 。此外,我花了四个月时间评估xUnit.net与MSTest。
额外 作者 gerryLowry,

在Polymorphic Podcast大约一年前的一个截屏视频系列中,ASP.NET做了一个很好的介绍MVP实现的演练。以这种方式实现,单元测试更自然地落到位。

http://polymorphicpodcast.com/shows/mv-patterns/

0
额外

最好的办法是将模型逻辑从表示中分离出来,并用NUnit或类似的方法彻底地对模型进行单元测试。测试用户与网页的交互可能会很麻烦。

If you actually do want to unit test the users interaction with the web page some of the afformentioned tools such as waitn seem good, an addition to that which I've heard of is Selenium

0
额外
我的手指经常犯这个错误:它是“WatiN”,发音为“What-in”,用于“.NET中的Web应用程序测试”[ watin.org/] 。有一个有用的相关工具叫做“WatiN测试记录器”[ watintestrecord.sourceforge.net/ )。
额外 作者 gerryLowry,

看一看 http://selenium.openqa.org/ ,它提供了一种很好的自动化方式来构建单元测试钩入浏览器。有一个不错的firefox插件用于录制测试,可以使用几乎任何单元测试框架。我们在上个月的本地用户组会议上进行了演示/演示,看起来很棒。

0
额外
或者参阅 seleniumhq.org
额外 作者 David d C e Freitas,

WatiN is the best that I've found. It integrates into Visual Studio unit testing or nunit & you can do pretty much anything you need in the browser (click links, submit forms, look for text/images, etc.), plus it's written in .net so you don't need to have ruby installed (as you do for watir, which is an awesome tool none the less)

0
额外
我完全同意。我已经使用了Watir很长一段时间,但是我有时会遇到与ruby框架有关的问题。使用WatiN更好。我不需要安装ruby,并且我可以使用智能感知。
额外 作者 Ben Mills,
WatiN很棒,它是一个集成测试工具。单元测试!=集成测试。
额外 作者 Jaco Pretorius,
是的,我认为这是他们的意思,我在他们澄清问题之前回答。
额外 作者 Glenn Slaven,