编写单元测试代码注意事项
- 每次只针对一个特性编写测试代码
- 使用足够多的“断言(Assert)”验证代码的正确性
- 不测试过于简单的方法:比如get和set方法
- 不测试私有方法
编写单元测试的First原则
- Fast
- 单元测试必须运行得很快
- 没有反复运行的单元测试,毫无价值
- Independent
- 单元测试方法的执行顺序无关紧要
- 单元测试的各个方法之间不应该相互依赖
- Repeatable
- 功能代码不改的前提下,相同的测试代码多次运行,应该得到相同的结果
- Self-validating
- 单元测试方法只有两种可能地运行结果:通过或失败,没有第三种情况
- Timely
- 功能代码与测试代码“配对”编写,步步为营,小步快走
仔细考虑单元测试的必要性
- 是否应该进行单元测试
- 通常情况下,对于正式的需要长期维护与持续改进的软件项目,进行单元测试是必须的
- 即使一个人写的程序,进行单元测试也是有益的
测试驱动的开发
- TDD:Test Driven Development,测试驱动的开发
- 在编写功能代码之前,先编写测试代码,之后再编写功能代码,让其通过测试
TDD具体步骤
- Red:创建一个注定要失败的单元测试
- Green:写必要的功能代码让测试通过
- Refactor:重构测试代码和功能代码,完成所需的功能
- Repeat:重复上述三步