java - 如何验证重构等于原始代码

标签 java validation refactoring

我正在使用遗留 Java 代码,没有任何单元测试。为了与项目一起工作,需要重构许多类。

许多重构都可以用 Eclipse 完成,而我是否手动进行了一些重构。经过一些重构后,我检查了 cvs-HEAD 的差异,但我不能确定一切都是 100% 正确的。

问题:我如何验证重构,即数学与以前的版本相同?我希望有一个工具,但我也接受“基本人类算法”作为解决方案。

我知道,“运行您的 JUnit 测试”是最好的答案,但遗憾的是,我的项目中没有。

谢谢!

最佳答案

在“TDD By Example”中有一个特定的部分讨论它。问题是你需要单元测试来重构,但复杂的代码通常是不可测试的。因此,您想重构以使其可测试。循环。

因此最佳策略如下:

执行微小的重构步骤。当步骤很小时,人类更容易确保整体行为完好无损。只选择增加可测试性的重构。这是你的近期目标。不要考虑支持 future 的功能(或任何类似的东西)。想想“我怎样才能让单元测试能够测试这个方法/类”。

一旦方法/类变得可测试,就为它编写单元测试。

重复此过程将逐渐使您到达可以进行测试的位置,因此您可以更积极地进行重构。通常,这个过程比人们预期的要短。

关于java - 如何验证重构等于原始代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2138157/

相关文章:

unit-testing - 单元测试:在设置方法中使用断言是一种好习惯吗?

java - 如何使用 spring-data-elasticsearch 在 elasticsearch 中进行集成测试?

java - 使用 ScaleGestureDetector 时放大太多后无法缩小

javascript - 如何使用 jQuery 验证表单、阻止提交表单并在指定的 div 中显示正确的错误消息?

javascript - 如何计算页面上具有值的输入总数?

asp.net - 通过 JavaScript 重置 ASP.NET 验证控件?

java - 跟踪列表中对象的最佳方式?

java - 如何判断数组中的某个项是否也是数组?

refactoring - 重构解决方案中的命名空间

c# - 当你有多个 visual studio 解决方案时如何使用重构工具?