我正在使用遗留 Java 代码,没有任何单元测试。为了与项目一起工作,需要重构许多类。
许多重构都可以用 Eclipse 完成,而我是否手动进行了一些重构。经过一些重构后,我检查了 cvs-HEAD 的差异,但我不能确定一切都是 100% 正确的。
问题:我如何验证重构,即数学与以前的版本相同?我希望有一个工具,但我也接受“基本人类算法”作为解决方案。
我知道,“运行您的 JUnit 测试”是最好的答案,但遗憾的是,我的项目中没有。
谢谢!
最佳答案
在“TDD By Example”中有一个特定的部分讨论它。问题是你需要单元测试来重构,但复杂的代码通常是不可测试的。因此,您想重构以使其可测试。循环。
因此最佳策略如下:
执行微小的重构步骤。当步骤很小时,人类更容易确保整体行为完好无损。只选择增加可测试性的重构。这是你的近期目标。不要考虑支持 future 的功能(或任何类似的东西)。想想“我怎样才能让单元测试能够测试这个方法/类”。
一旦方法/类变得可测试,就为它编写单元测试。
重复此过程将逐渐使您到达可以进行测试的位置,因此您可以更积极地进行重构。通常,这个过程比人们预期的要短。
关于java - 如何验证重构等于原始代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2138157/