更好的单元测试指南

dfa*_*dfa 6 language-agnostic unit-testing

Jimmy Bogard写了一篇文章:从单元测试中获取价值,他给出了四条规则:

  • 从用户的角度来看,测试名称应该描述什么和原因
  • 测试也是代码,给他们一些爱
  • 不要满足于一种固定模式/组织风格
  • 每次测试一次安装,执行验证

您认为这些指南是完整的吗?您的单元测试指南是什么?请避免使用特定的语言习语,尽量保持与语言无关的答案.

Mar*_*ann 6

有一本名为xUnit Test Patterns的完整的850页书籍可以解决这个问题,所以它不能轻易归结为一些硬性规则(尽管你提到的规则很好).

一本更容易理解的书也涵盖了这个主题是单元测试的艺术.

如果我可以添加我认为重要的规则,它们将是:

  • 使用测试驱动开发.这是迄今为止进行良好单元测试的最有效途径.尝试将单元测试改造为现有代码往往很难.
  • 保持简单:理想情况下,单元测试应少于10行代码.如果它增长到超过20行代码,您应该认真考虑重构测试代码或您正在测试的API.
  • 保持快速.单元测试套件意味着非常频繁地执行,因此旨在将整个套件保持在10秒以下.这很容易意味着将每个测试保持在10毫秒以下.


Chr*_*ian 5

编写单元测试很简单,编写单元可测试代码很困难.

  • 通常单元测试也会被破坏:测试逻辑是错误的,你会对代码产生错误的信心 (3认同)