2023年阅读笔记6

发布时间 2024-01-09 16:11:20作者: wardream

《修改代码的艺术》

本书内容关于如何有效处理遗留代码,遗留代码是指没有编写测试的代码。因此,为遗留代码编写测试是改善遗留代码的首要任务。对一个大系统,不可能从头开始编写每一处的单元测试,一般只能从当前需要改动的地方开始,逐步添加单元测试,形成“软件夹钳”,进而修改并改善现有代码。遗留代码修改算法:   

(1) 确定改动点;(前提:理解代码)

(2) 找出测试点;(前提:理清代码间的联系)

(3) 解依赖;(解依赖是为类编写单元测试的前提 )

(4) 编写测试; (编写符合代码当前行为的特征测试 )

(5) 修改、重构。 (在存在测试覆盖的前提下,修正bug 、改善设计等 )

从上述算法可以看出,前4 条是关于如何编写测试代码的,而解依赖是编写测试的前提,因为本书很大程度可以说成是关于如何解依赖的书籍,书中也用来很大的篇幅来介绍解依赖技术。当然,解依赖除了处理遗留代码,还可用于指导编写易测试的代码。

 

测试代码的命名约定:(测试类:DBEngine )

单元测试类:一个类至少要编写一个相应的单元测试类,故单元测试类常常在目标类名上加 “Test” 前缀或后缀。为便于浏览,加后缀方便些。DBEngineTest

伪类(伪对象或仿对象):伪类是指用于测试的伪造类。 伪类常用”Fake” 作为前缀,使得所有的伪类都在一起,便于区别。FakeDBEngine

测试子类(testing subclass ): 测试子类是指利用继承将不关心的行为架空使只访问测试所关心的行为的派生子类。 测试子类常由子类化并重写方法技术生产。测试子类本质就是为测试类接触不必要的测试依赖。测试子类常使用“Testing ”前缀。TestingDBEngine