2

嗨,我被分配了一项任务,即使用市场上可用的工具探索单元测试。我的问题是如何编写有助于编写单元测试用例的 API。示例我可以使用 nunit 编写类似的内容来检查文件是否存在于给定位置。

<Test()> _
   Public Sub CheckOutputFileInfo()
    ReportPath = "D:temp\test.txt"
    Dim result As Boolean
    result = File.Exists(ReportPath)
    Assert.IsTrue(result)
End Sub

我知道这不是最好的例子,但我的问题是如何合并 nunit 并开发 API,以便其他开发人员/测试人员可以编写测试用例而无需费心学习 nunit。仅供参考,我从未编写过 API,这将是我的第一次尝试。关于从哪里开始有什么建议吗??谢谢

4

3 回答 3

7

我认为你最好让开发人员使用 nUnit。它已经设计得很好并且很灵活。如果您想让您的开发人员的生活更轻松,请尝试构建一些帮助类,这些类在许多不同测试所需的配置中设置测试对象和样本数据。也许尝试类似Creation Method 模式。这来自一本名为xUnit Test Patterns的非常好的书,其中描述了许多使测试代码更易于编写、阅读和维护的方法。这本书的大部分内容都可以在线获得,Brief Tour是一个很好的起点。

于 2010-12-29T22:06:14.320 回答
3

您的示例并不是严格意义上的单元测试,因为它会触及文件系统。

如果满足以下条件,则测试不是单元测试:

  1. 它与数据库对话
  2. 它通过网络进行通信
  3. 它涉及文件系统
  4. 它不能与您的任何其他单元测试同时运行
  5. 你必须对你的环境做一些特殊的事情(比如编辑配置文件)来运行它。

我建议您在开始尝试让您的开发人员开始单元测试之前学习单元测试最佳实践和模式。根据经验,有人需要在自己完全掌握单元测试的情况下支持单元测试。从长远来看,它将为您省去很多麻烦。

这是一本可以帮助您入门的好书:

http://artofunittesting.com/

于 2010-12-29T22:23:44.830 回答
1

你为什么想这么做?NUnit 和大多数替代品都非常易于学习和使用。编写单元测试的挑战不是掌握 api,而是编写好的测试和可测试的代码。

要有效地使用 NUnit,您只需要知道 Test 和 TestFixture 和 SetUp 属性,并知道 Assert 类中可用的断言。这真的很简单!

所以我建议你专注于如何编写好的测试以及如何编写易于测试的代码。这两个主题都具有挑战性,有很多东西要学。

于 2010-12-29T22:09:24.327 回答