编写优良的测试程序,可以极大地提高变成速度,即使不进行重构也一样如此。
1 自测试代码的价值
- 程序员时间消耗:编写代码占据很少一部分,大部分时间用来调试。
- 确保所有测试都完全自动化,让它们检查自己的测试结果。
- 撰写测试代码的最有用时机是在开始编程之前。当需要添加新特性得时候,先写测试代码。
2 Junit 测试框架
- 准备好测试夹具,使用注解@Before 、@After、 @BeforeClass、 @AfterClass
- 频繁地运行测试。每次编译请把测试也考虑进去——每天至少执行每个测试一次。
- 编写测试代码时,往往一开始让它们失败,为了确保测试机制的确可行。
单元测试和功能测试
- 单元测试
- Junit 的用途是单元测试。
- 编写单元测试得目的是为了提高程序员得生产率。
- 功能测试
- 功能测试用来保证软件能够正常运作。
- 功能测试从客户的角度保证质量,并不关心程序员得生产力。
- 每当你收到bug报告,请先写一个单元测试来暴露bug
3 添加更多测试
- 针对可能失败的情况进行测试
- 测试你担心出错的部分
- 集中测试边界条件
- 检查是否抛出了预期的异常