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

时间:2020-03-05 18:38:14  来源:igfitidea点击:

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

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

更新:

抱歉,我应该更具体一些。我正在使用ASP.Net 2.0,并且在寻找更多类似Java的jUnit之类的工具。我看了看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弹枪。我希望能成功。实用书架上有一本很好的书,涵盖了这个主题。

回答

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

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

回答

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

  • http://nunitasp.sourceforge.net/tutorial/
  • http://www.hanselman.com/blog/NUnitUnitTestingOfASPNETPagesBaseClassesControlsAndOtherWidgetryUsingCassiniASPNETWebMatrixVisualStudioWebDeveloper.aspx

回答

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

回答

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

回答

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

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

回答

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

如果我们确实想对用户与网页的交互进行单元测试,那么其中一些著名的工具(例如,waitn)似乎不错,我听说的还有Selenium