测试驱动开发(TDD)

TDD的三条法则

  • 第一法则 在编写失败的单元测试之前,你不得编写任何产品代码。
  • 第二法则 你不得编写超出使测试失败所需的单元测试,不编译也算失败。
  • 第三法则 你不得编写超出使当前失败的测试通过所需的产品代码。

清洁的测试

如果你不保持测试的清洁,你将失去它们。

可读性对于保持测试清洁非常重要。

每个测试只保留一个断言

推荐每个测试只保持一个断言,因为这样有助于保持每个测试易于理解。

每个测试一个概念

这条规则将帮助你保持函数的简短。

  • 为你需要验证的每个概念编写一个测试

F.I.R.S.T

  • 快速 测试应该是快速的。
  • 独立 测试不应该相互依赖。
  • 可重复 测试应该在任何环境中都是可重复的。
  • 自我验证 测试应该有布尔输出。要么通过要么失败。
  • 及时 单元测试应该在使它们通过的产品代码之前编写。如果你在产品代码之后编写测试,你可能会发现产品代码难以测试。