TDD三定律:
定律一:在编写不能通过的单元测试前,不可编写生产代码。
定律二:只可编写放好无法通过的单元测试,不能编译也不算通过。
定律三:只可编写刚好足以通过当前失败测试的生产代码。
保持测试整洁:
(1)脏测试=没测试
(2)测试代码和生产代码同等重要
(3)测试的好处:使代码可扩展、可维护、可复用
整洁的测试:
整洁测试的要素:可读性(明确、简洁、足够的表达力,但也要和生产代码一般有效)
双重标准:
生产环境和测试环境要求不一样。
每个测试一个断言:
更准确地说,每个测试中的断言数量应该最小化。
F.I.R.S.T.
(1)快速(First):测试应该够快。
(2)独立(Independent):测试应该相互独立。
(3)可重复(Repeatable):测试应当可在任何环境中重复通过。
(4)自足验证(Self-Validating):测试应该有布尔值输出。
(5)及时(Timely):测试应及时编写。
面向特定领域语言的测试API