《代码整洁之道》第九章

31 Jan 2022

Reading time ~5 minutes

9.1 TDD三定律

第一定律 在编写不能通过的单元测试前,不可编写生产代码。

第二定律 只可编写刚好无法通过的单元测试,不能编译也算不通过。

第三定律 只可编写刚好足以通过当前失败测试的生产代码。

9.2 保持测试整洁

测试代码和生产代码一样重要。它需要被思考、被设计和被照料,它该像生产代码一般保持整洁。

测试带来一切好处

如果测试不能保持整洁,你就会失去它们。没有了测试,你就会失去保证生产代码可扩展的一切要素。

9.3 整洁的测试

整洁的测试有3个要素:可读性、可读性和可读性。

测试应该呈现出构造-操作-检验(BUILD-OPERATE-CHECK)模式。

9.3.1 面向特定领域的测试语言

我们不直接使用用来对系统进行操作的API,而是打造了一套包装这些API的函数和工具代码,这样就能更方便地编写测试,写出来的测试也更便于阅读。

9.3.2 双重标准

测试代码应当简单、精悍、足具表达力,但它该和生产代码一般有效。

9.4 每个测试一个断言

单个测试中的断言应该最小化。

每个测试一个概念

最佳规则也许是应该尽可能减少每个概念的断言数量,每个测试函数只测试一个概念。

9.5 F.I.R.S.T

整洁的测试还遵循以下五条规则:

快速(Fast)。测试应该够快。

独立(Independent)。测试应该相互依赖。

可重复(Repeatable)。测试应当可以在任何环境中重复通过。

自足验证(Self-Validating)。测试应该有布尔值输出。

及时(Timely)。测试应及时编写。

9.6 小结

测试保证和增强了生产代码的可扩展性、可维护性和可复用性,所以,保持测试整洁吧。



Reading NotesClean Code Share Tweet +1