边界
- 学习性测试的好处不只是免费:首先学习性测试可以帮助我们学习;其次,留下的测试代码当有新版本发布时,依旧可以用来测试,以发现是否有改变。
- 使用尚不存在的代码:有那种将已知边界和未知边界分开的机制。可以用适配器模式是将接口改造成本地。
- 边界保持整洁
单元测试
一、TDD三大定律
- <b>定律一</b> 在编写不能通过的单元测试前,不可编写生产代码。(单元测试在代码之前)
- <b>定律二</b> 只可编写刚好无法通过的单元测试,不能编译也算不通过。(单元测试需要针对性)
- <b>定律三</b> 只可编写刚好足以通过当前失败测试的生产代码。
二、保持测试整洁
测试代码和生产代码一样重要。
如果测试不能保持整洁,你就会失去测试。没有测试,就会失去保证生产代码可扩展的一切要素。单元测试保证代码改进的健壮和有效。
三、整洁的测试
<b>tips:可读性、可读性、可读性</b>
代码需要明确、简洁、还有足够的表现力。效率并不在考虑之内。
包装API成测试API,形成测试语言。测试需要整洁,和效率无关。
四、每个测试一个断言
每个测试都应该有且只有一个断言语句。
每个测试一个概念。
五、F.I.R.S.T
- FAST:测试应该足够快。
- Independent:测试应该相互独立。
- Repeatable:测试应该可以在任何环境下运行。
- Self-Validating:测试应该有布尔值输出。
- Timely:测试应该及时编写。