开发单元测试API

时间:2010-12-29 22:03:02

标签: .net vb.net unit-testing nunit-2.5

HI, 我被分配了一个使用市场上可用工具探索单元测试的任务。我的问题是如何编写一个有助于编写单元测试用例的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,这将是我的第一次拍摄。 有关从哪里开始的任何建议?? 感谢

3 个答案:

答案 0 :(得分:7)

我认为你最好让开发人员使用nUnit。它设计精良,灵活多变。如果您希望让开发人员的工作更轻松,请尝试构建一些帮助程序类,以便在许多不同测试所需的配置中设置测试对象和样本数据。也许尝试Creation Method pattern之类的东西。这是一本名为xUnit Test Patterns的好书,它描述了许多使测试代码更易于编写,阅读和维护的方法。本书的大部分内容都是在线提供的,Brief Tour是一个很好的起点。

答案 1 :(得分:3)

您的示例并非严格意义上的单元测试,因为它会命中文件系统。

如果出现以下情况,则测试不是单元测试:

  1. 与数据库对话
  2. 通过网络进行通信
  3. 它触及文件系统
  4. 它不能与任何其他单元测试同时运行
  5. 您必须对您的环境执行特殊操作(例如编辑配置文件)才能运行它。
  6. 在开始尝试让开发人员开始进行单元测试之前,我建议您学习单元测试最佳实践和模式。根据经验,有人需要支持自己完全掌握单元测试。从长远来看,它将为您节省很多麻烦。

    这是一本很棒的书,可以帮助您入门:

    http://artofunittesting.com/

答案 2 :(得分:1)

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

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

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