程序员的职业素养 读书笔记

此事已有定论

TDD绝不仅仅是一种用于缩短编码周期的简单技巧。

每个开发人员都要适应和掌握TDD。

TDD的三项法则

1、在编好失败单元测试之前,不要编写任何产品代码。

2、只要有一个单凶测试失败了,就不要再写测试代码;无法通过编译也是一种失败情况。

3、产品代码恰好能够让当前失败的单元测试成功通过即可,不要多写。

TDD的优势

确定性:任何时刻,代码有任何修改,都必须运行手头有的全部测试。

缺陷注入率:无需更多判断,单凭测试全部通过,便敢冒可能的风险发布代码。TDD能够显著降低缺陷。

勇气:拥有一套值得依赖的测试,便可完全打消对修改代码的全部恐惧。

文档:单元测试即是文档。它们描述了系统设计的最底层设计细节。

设计:测试先行的需要,会迫使去考虑什么是好的设计。

专业人士的选择:它是一项能够提升代码确定性、给程序员鼓励、降低代码缺陷率、优化文档和设计的原则。

TDD的局限

即使做到了测试先行,仍有可能写出糟糕的代码。因为写出的测试代码可能就很糟糕。

某些场合不合适TDD,这种情况很少,但确实存在。

原文地址:https://www.cnblogs.com/TanSea/p/ClearCoder-5.html