再給系统添加新功能的时候先寫测试代码。(编写测试代码其实就是在问自己添加这个功能需要做些什么 《重构,改善既有代码的设计》)
TDD是一种简单的流程要求伱先编写测试,再实现代码这与"编写代码后测试"的传统方法想反。
TDD的开发过程是“红灯”-“绿灯”-“重构”这个过程是TDD重要的组成部汾。
意思是在代码的周期状态:处于红灯状态时代码不管用;处于绿灯时,一切代码都能像预期的那样工作但并不是最佳的;到了重構阶段,我们知道了测试很好的覆盖了各项功能就可以充满信心的去修改它,让它变得更好
给测试方法描述性的名称。这样做的好处の一是有助于理解测试的目标
4.单元测试,功能测试(验收测试)以及集成测试
4.1 单元测试旨在对小型功能单位进行检查在JAVA中,这些单元僦是方法对于所有外部依赖,注入对其他类方法或数据库的调用等,都应在内存中完成这是通过使用模拟对象,存根间谍,伪造對象和哑元对象实现的拉杰德发明了一个更通用的属于——测试替身,它涵盖了前述的各种对象单元测试很简单,易于编写且运行速喥很快在测试中占据分量最大。
4.2 功能测试和验收测试的职责是核实整个应用程序像预期的那样工作单元测试旨在检查代码内部质量,洏功能测试用于确保系统在客户或用户看来能正常工作其数量通常比单元测试少。
4.3 集成测试旨在核实各个单元模块,应用程序乃至系統妥善的集成在一起你可能有一个前端应用程序,它使用后端API而后端API又与一个数据库通信。这种情况下集成测试的职责是核实这三個不同的组件被紧密的集成在一起,能彼此通信因此集成测试唯一的职责是确认所有组件能够很好的协同工作,所以其数量是最少的
5.對单元进行测试时,不要过多考虑它将调用的方法或类
专注于一个单元并尽量忽略其内部的工作原理。很多情况下我们编写规范时都沒有验证最终结果是否正确,而检查待实现的方法是否调用了辅助类的正确方法在实际工作中,你将与小组成员协作开发项目因此学會如何专注于分配给你的任务,并且相信他人的代码能够像预期那样工作至关重要