第9章:单元测试
9.1 TDD三定律
定律1:在编写不能通过的单元测试前,不可编写生产代码。解释:先写测试用例。
定律2:只可编辑刚好无法通过的单元测试,不能编译也算不通过。解释:编译错误也算失败,测试用例必须有针对性。
定律3:只可编写刚好足以通过当前失败测试的生产代码。解释:一个产品代码必须建立在一个测试用例成功的基础上,如果需要写新的产品代码必须从第1步开始。
9.2 保持测试整洁
测试代码和生产代码一样重要,都需要你保持整洁,脏乱差的测试代码将会阻碍生产代码的修改。
9.3 整洁的测试
整洁测试的三要素:可读性、可读性以及可读性。那么如何做到可读性呢?明确、简洁以及足够的表达力。
测试需要呈现构造-操作-检验。即第一是构造测试数据,第二是操作测试数据,第三是检验操作是否得到期望的结果。
面向特定领域的测试语言。
双重标准。测试代码和生产代码有一套不同的工程标准,测试代码应当简单、精悍,足具表达力。
9.4 每个测试一个断言
什么是断言呢?在单元测试时,程序员预计在程序运行到某个节点位置,需要判断某些逻辑条件必须满足,这样下面的一些业务逻辑才可以进行下去,如果不满足,程序就会"报错"甚至是"崩溃"。可以理解为找bug时,类似打断点的操作。
9.5 FIRST准则
1 、快速(Fast),测试应该快(及时反馈出生产代码的问题)。
2、独立(Independent) 每个测试流程应该独立。
3 、可重复(Repeatable) 测试应该在任何环境上都能重复通过。
4 、自我验证(Self-Validating) 测试应该有布尔值输出。
5 、及时(Timely) 测试应该及时编写。
|