Unit testing 更好的单元测试指南

Unit testing 更好的单元测试指南,unit-testing,language-agnostic,Unit Testing,Language Agnostic,Jimmy Bogard写了一篇文章:,他给出了四条规则: 测试名称应该从用户的角度描述什么和为什么 测试也是代码,给他们一些爱 不要拘泥于一种固定模式/组织风格 每次测试一次设置,执行和验证 您认为这些指南是否完整?你对单元测试的指导方针是什么? 请避免使用特定的语言习惯用法,尽量保持答案与语言无关。编写单元测试很简单,编写单元可测试代码很困难。 定期在测试中分解代码,以查看单元测试的有效性 有一本850页的书专门讨论这个话题,所以这本书不能简单地归结为几个硬性规则(尽管你提到的规则很好)

Jimmy Bogard写了一篇文章:,他给出了四条规则:

  • 测试名称应该从用户的角度描述什么和为什么
  • 测试也是代码,给他们一些爱
  • 不要拘泥于一种固定模式/组织风格
  • 每次测试一次设置执行和验证
您认为这些指南是否完整?你对单元测试的指导方针是什么?
请避免使用特定的语言习惯用法,尽量保持答案与语言无关。

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

  • 定期在测试中分解代码,以查看单元测试的有效性

有一本850页的书专门讨论这个话题,所以这本书不能简单地归结为几个硬性规则(尽管你提到的规则很好)

一本更容易消化的书,也涵盖了这个主题是

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

  • 使用测试驱动开发。这是迄今为止实现良好单元测试的最有效途径。试图将单元测试改造为现有代码充其量也很困难
  • 保持简单:理想情况下,单元测试应该少于10行代码。如果它增长到超过20行代码,则应该认真考虑重构测试代码或正在测试的API。
  • 快点。单元测试套件需要非常频繁地执行,所以要将整个套件保持在10秒以下。这很容易就意味着每次测试都不超过10毫秒

  • 如果你写代码,就写测试
  • 不要拘泥于单元测试教条
  • 拥抱单元测试业力
  • 将代码和测试视为一体
  • 测试比单元更重要
  • 测试的最佳时间是代码更新时
  • 测试不会浪费
  • 今天不完美的考试总比将来某一天完美的考试好
  • 丑陋的测试总比没有好
  • 有时,测试证明了方法的正确性
  • 只有傻瓜才不用工具
  • 好的测试失败了

要了解更多编写单元测试的好方法,.

请查看测试的代码覆盖率,并尝试使其合理完整(对于错误情况,我会酌情决定是否测试它们).

+1对于xUnit测试模式:一本好书通常单元测试也会被破坏:测试逻辑是错误的,你会对代码产生错误的信心-1“丑陋的测试总比没有测试好。”今天一个丑陋或不完美的测试在明天失败时可能会引起严重的不必要的麻烦,经过3个小时的调查后发现失败是测试代码问题,而不是实际的增值断言失败。