39

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

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

更新:

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

4

7 回答 7

34

男孩,这是一个很笼统的问题。我会尽力而为,但要准备好看到我错过一英里。

假设

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

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

MVP 或 MVC 都会有效。MVC 的优势在于几乎可以使用 Microsoft 框架。

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

这有点像霰弹枪的信息爆炸。我希望一些如果它击中。Pragmatic Bookshelf 有一本涵盖该主题的好书

于 2008-08-07T04:23:38.000 回答
5

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

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

于 2008-10-21T20:35:51.353 回答
4

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

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

于 2008-08-07T04:50:54.060 回答
3

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

于 2008-09-23T01:10:22.030 回答
2

NUnit是适合您的方式。你可以在这里找到一些链接:

  1. http://nunitasp.sourceforge.net/tutorial/
  2. Scott Hanselman 使用 Cassini 对 ASP.NET 页面、基类、控件和其他小部件进行 NUnit 单元测试
于 2008-08-28T02:20:33.743 回答
2

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

于 2008-08-28T02:26:00.750 回答
2

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

如果您确实想对用户与网页的交互进行单元测试,那么一些上述工具(例如 waitn)似乎不错,除了我听说过的工具之外,还有Selenium

于 2009-06-30T05:05:30.327 回答