代码之家  ›  专栏  ›  技术社区  ›  Nathan Fellman

如何检查重构时没有损坏任何东西?

  •  3
  • Nathan Fellman  · 技术社区  · 16 年前

    我将着手对代码中的一些函数进行重构。我有大量的单元测试可以确保我没有破坏任何东西,但我不确定它们给我的覆盖范围。是否有任何工具可以分析代码并查看功能是否保持不变?

    5 回复  |  直到 16 年前
        1
  •  10
  •   Nathan Fellman    16 年前

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

    如果不了解您计划执行的重构的更多信息,就很难准确地回答您的问题。

    一个建议可能是继续进行小的迭代,而不是重构大量的代码库,然后实现所有中断。

    参考: The GNU Coverage Tool - A Brief Tutorial

        2
  •  7
  •   Mark Byers    16 年前

    没有“简单”的方法来确保功能没有改变。你必须有完整的单元测试,涵盖所有的可能性。完全测试所有内容是不可能的,但您可以确保最重要的用户案例都经过了彻底的测试。

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

    http://covtool.sourceforge.net/

        3
  •  5
  •   T.J. Crowder    16 年前

    如果您有单元测试,但您不满意它们涵盖了您将要重构的领域,那么您可以使用 code coverage 分析工具。如果发现了漏洞,可以创建并仔细检查测试以填补漏洞,然后继续重构,因为(更新的)单元测试覆盖了整个领域——这对项目的长期发展也有好处。

        4
  •  2
  •   e8johan    16 年前

    诀窍是使用单元测试。基本上,编译器检查 语言学的 当您的单元测试从 立场。通过拥有大量良好的单元测试,您可以在重构时感到安全(尤其是在多开发人员项目中工作时)

        5
  •  1
  •   GrayWizardx    16 年前

    Bullseye . 它不会为您提供对整体功能的分析(如果有偏离),但它将帮助您确保您的测试充分地使用了您的目标库。这是一个商业应用程序,但我知道其他语言也有类似的OSS版本,如果你需要的话,可能会有免费的许可证。