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

Bry*_*nny 37 c# asp.net unit-testing visual-studio

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

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

更新:

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

Bra*_*row 34

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

假设

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

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

无论是MVP还是MVC都会有效.MVC的优点是几乎可以使用Microsoft框架.

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

这是一种霰弹枪的信息爆炸.我希望有一些如果它击中.Pragmatic Bookshelf有一本很好的书,涵盖了这个主题.

  • 不再支持NUnitAsp:编写它的人提出了一个有效的观点,即"知情人士正在使用表示层来使ASP.NET变得如此之薄,以至于像NUnitAsp这样的工具没有帮助." (2认同)

小智 5

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

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