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

时间:2008-08-07 03:23:46

标签: c# asp.net visual-studio unit-testing

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

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

更新

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

7 个答案:

答案 0 :(得分:32)

男孩,这是一个很普遍的问题。我会尽我所能,但要准备好让我想念一英里。

假设

  1. 您使用的是ASP.NET,而不是普通的ASP
  2. 你真的不想测试你的网页,但它们背后的逻辑。单元测试实际的.ASPX页面是相当痛苦的,但有一些框架可以做到这一点。 NUnitAsp就是一个。
  3. 要做的第一件事就是组织(或计划)您的代码,以便对其进行测试。当时最流行的两种设计模式似乎是MVP和MVC。两者都将应用程序的逻辑视图分开,这样您就可以在没有视图(网页)阻碍的情况下测试逻辑。

    无论是MVP还是MVC都会有效。 MVC具有使用Microsoft框架almost ready to go的优势。

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

    这是一种霰弹枪的信息爆炸。我希望有一些如果它击中。实用书架有一个good book covering the topic

答案 1 :(得分:4)

大约一年前有一个关于Polymorphic Podcast的截屏系列,它在ASP.NET中对MVP实现进行了很好的介绍。通过这种方式实施,单元测试更加自然地落实到位。

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

答案 2 :(得分:4)

这些框架对于集成测试非常有用,但它们无法提供单元测试,即测试与持久性,业务逻辑等无关的View。

对于单元测试Asp.Net Webforms以及MVC,您可以使用Ivonna。例如,您可以模拟数据库访问并验证模拟的记录是否显示在数据网格中。或者,您可以模拟成员资格提供程序并测试登录方案,而无需导航到登录页面并输入凭据,就像集成测试一样。

答案 3 :(得分:3)

WatiN是我发现的最好的。它集成到Visual Studio单元测试或nunit&你可以在浏览器中做任何你需要的东西(单击链接,提交表单,查找文本/图像等),再加上用.net写的,这样你就不需要安装ruby了(就像你为watir做的那样) ,这是一个非常棒的工具)

答案 4 :(得分:2)

答案 5 :(得分:2)

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

答案 6 :(得分:2)

您最好的选择是将模型逻辑与演示文稿分开,并使用NUnit或类似工具对模型进行彻底的单元测试。测试用户与网页的交互可能很繁琐。

如果您确实希望对用户与网页的互动进行单元测试,那么一些提供的工具(例如waitn)似乎很好,我听说过的是Selenium