五、TDD

  1. 此事已有定论。这是定理就如同:
    • 此事已有定论
    • 争论已经结束
    • GOTO是有害的
    • TDD确实可行
  2. TDD三项法则
    • 编好失败单元测试之前,不写任何产品代码
    • 只要有一个单元测试失败,就不要在写测试代码;无法通过编译也是一种失败
    • 产品代码恰好能够让当前失败的单元测试成功通过即可,不要多谢 大概30s就运行一次代码。先写好一个单元测试的一小部分代码;很快发现还缺少一些类和函数,所以单元测试无法编译,因此必须便携产品代码,让测试能编译成功;产品代码够用即可,然后再回头接着写单元测试代码
  3. TDD 优势
    • 确定性:代码覆盖度,可以更有把握交付
    • 缺陷注入率:低bug高质量
    • 勇气:看到糟糕代码,主动修改,不再惧怕整理代码
    • 文档:单元测试即文档。描述了系统设计的最低层设计细节
    • 设计:测试会多思考程序实现,减少耦合
  4. 局限 不是万能的,也有可能写出糟糕的代码,比如测试代码就糟糕

Comments