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

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

What is the best way to do unit testing for ASP.NET 2.0 web pages?

有什么建议么? 在C#中使用Visual Studio。

是否有使用任何特定工具或方法来解决此问题?

更新:

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


男孩,这是一个非常普遍的问题。我会尽力的,但是准备好让我怀念一英里。

假设条件

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

    MVP或MVC都将有效。 MVC的优点是几乎可以使用Microsoft框架。

    一旦选择了鼓励可测试性的框架模式,就需要使用单元测试工具。 NUnit是一个很好的起点。 Visual Studio Professional内置了一个测试套件,但是NUnit + TestDrive.NET也可以在IDE中使用。

    这就像是信息的shot弹枪。我希望能成功。实用书架上有一本很好的书,涵盖了这个主题。


    这些框架对于集成测试很有用,但是它们不能提供单元测试,也就是说,测试与持久性,业务逻辑等无关的View。

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


    大约一年前,在多态播客上有一系列的截屏视频,很好地介绍了ASP.NET中MVP实现的演练。通过这种方式实现,单元测试自然而然地就位了。

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


    WatiN是我发现的最好的。它集成到Visual Studio单元测试或nunit中,您几乎可以在浏览器中完成所需的任何操作(单击链接,提交表单,查找文本/图像等),而且它是用.net编写的,因此您不需要安装红宝石(就像您对watir所做的一样,这还是一个很棒的工具)


    最好的选择是将模型逻辑与表示分离,并使用NUnit或类似工具彻底对模型进行单元测试。可以轻松地测试用户与网页的交互。

    如果您确实想对用户与网页的交互进行单元测试,那么其中一些著名的工具(例如,waitn)似乎很好,我听说过的其他工具是Selenium


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


    NUnit是您的理想之选。
    您可以在这里找到一些链接:

  • http://nunitasp.sourceforge.net/tutorial/
  • Scott Hanselman使用Cassini对ASP.NET页,基类,控件和其他小部件进行NUnit单元测试

  • 推荐阅读