如何在重构时检查我没有破坏任何东西?

Nat*_*man 3 c c++ linux refactoring gcc

我即将开始在我的代码中重构一些函数.我有大量的单元测试,以确保我没有破坏任何东西,但我不确定他们给我的报道.是否有任何工具可以分析代码并看到功能保持不变?

我计划重构一些相当孤立的代码,所以我不需要检查整个程序,只需要检查我正在处理的区域.

对于上下文,我正在使用的代码是C/C++,我在Linux中使用GCC和VIM.

Gre*_*osz 10

gcov将为您提供单元测试的覆盖信息.

在不了解您计划执行的重构的情况下,很难以准确的方式回答您的问题.

可能给出的建议是继续进行小的迭代,而不是重构代码库的很多部分,然后实现一切中断.

参考:GNU Coverage工具 - 简要教程


Mar*_*ers 7

没有"简单"的方法来确保功能没有改变.您必须拥有涵盖所有可能性的完整单元测试.绝对无法测试所有内容,但您可以确保最重要的用户案例具有全面的测试.

您还可以使用覆盖工具来确保您拥有良好的测试覆盖率:

http://covtool.sourceforge.net/


T.J*_*der 5

如果你有单元测试,但是你不满意它们将覆盖你将要重构的区域,你可以找到使用代码覆盖率分析工具.如果您发现差距,您可以创建并仔细检查测试以填补空白,然后继续您的重构非常高兴您的(更新的)单元测试彻底覆盖了地面 - 这对项目来说也是长期的好.