如果想进行重构,首要前提就是拥有一个可靠的测试环境,编写优良的测试程序,可以极大提高我的编程速度。
- 每个类都应该有一个测试函数,并以它来测试自己这个类。
- 编写测试程序,意味要写很多额外代码,除非你确切体验到这种方法对编程速度的提升,否则自我测试就显示不出它的意义。
- Java之中的测试惯用手法是testing main(),意思是每个类都应该有一个用于测试的main().另一种做法是建议一个独立类用于测试,并在一个框架中运行它,使测试工作更轻松。
- 频繁地运行测试,每次编译请把测试也考虑进去---每天至少执行每个测试一次。
单元测试和功能测试
每当你收到bug报告,请先写一个单元测试来暴露bug.
Junit框架设计用来编写单元测试,功能测试往往以其他工具付诸进行。
- 观察类该做的所有的事情,然后针对任何一项功能的任何一种可能失败情况,进行测试。
- 编写未臻完善的测试并实际运行,好过对完美测试的无尽等待。
- 考虑可能出错的边界条件,把测试火力集中在那。
- 当事情被认为应该会出错时,别忘了检查是否抛出了预期的异常。
- 不要因为测试无法捕捉所有bug就不写测试,因为测试的确可捕获到大多数bug.