💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 重构的第一步 每当我要进行重构的时候,第一个步骤永远相同:我得为即将修改的代码建立一组可靠的测试环境。这些测试是必要的,因为尽管遵循重构准则可以使我避免绝大多数的臭虫引入机会,但我毕竞是人,毕竟有可能犯错。所以我需要可靠的测试。 由于statement() 的运作结果是个字符串(String),所以我首先假设一些顾客,让他们每个人各租几部不同的影片,然后产生报表字符串。然后我就可以拿新字符串和手上已经检查过的参考字符串做比较。我把所有测试都设置好,使得以在命令行输入一条Java 命令就把它们统统运行起来。运行这些测试只需数秒钟,所以一如你即将见到,我经常运行它们。 测试过程中很重要的一部分,就是测试程序对于结果的回报方式。它们要不说 "OK",表示所有新字符串都和参考字符串一样,要不就印出一份失败清单,显示问题字符串的出现行号。这些测试都属于自我检验(self-checking)。是的,你必须让测试有能力自我检验,否则就得耗费大把时间来回比对,这会降低你的开发速度。 进行重构的时候,我们需要倚赖测试,让它告诉我们是否引入了「臭虫」。好的测试是重构的根本。花时间建立一个优良的测试机制是完全值得的,因为当你修改程序时,好测试会给你必要的安全保障。测试机制在重构领域的地位实在太重要了,我将在第4章详细讨论它。 TIP:重构之前,首先检查自己是否有一套可靠的测试机制。这些测试必须有自我检验(self-checking)能力。