【问题标题】:How to start writing tests if I already have a large code base without any tests?如果我已经有一个没有任何测试的大型代码库,如何开始编写测试?
【发布时间】:2012-04-12 21:07:09
【问题描述】:

我一直在想“测试?我不需要任何该死的测试!我没有它就可以了!”

然后我的代码变长了。

现在我明白为什么编写测试很重要。我总是害怕一点点改变会导致破坏某些东西。我真的很想开始写测试。但是代码库变得如此之大,以至于我真的不知所措。我不知道从哪里开始。而且大部分内容我什至不记得我为什么要这样编码,所以如果我开始回去编写测试,那将需要很长时间。

如果我已经有大量代码库,有人可以提供有关如何开始编写测试的建议吗?

【问题讨论】:

  • 你在遗留代码阵营。参考 WELC 书,通过测试进行安全的小改动,保持承诺并希望最好。但它不会像您从起跑线开始遵循 TDD 的场景那样轻松。

标签: ruby-on-rails unit-testing testing tdd


【解决方案1】:

首先,我建议您阅读the WELC book,这在您的情况下应该会派上用场。

下次接触代码时开始,下次需要更改代码中的某些内容时,请先为其编写测试,然后继续围绕您必须更改、更新、修复的所有内容编写测试,或添加。这样,随着时间的推移,您将向所有正在发生变化的区域添加测试,并且在为其余代码编写测试时似乎不会那么繁重。

但是,我要重申,我链接到的关于遗留代码的书将非常有帮助,因为它详细介绍了解决此问题的方法。

【讨论】:

    【解决方案2】:

    编写测试,尤其是好的测试需要很多时间,有时可能会花费开发时间/成本的 50%,有时甚至更多。我将首先为您的所有函数编写单元测试,并尝试获得尽可能多的语句覆盖率。如果你不知道一个方法是如何工作的,它可能没有很好的文档和/或编写,你最好还是重写它。

    这不是问题的直接答案,而是一个小建议: 您现在真的应该花时间修复和清理您的代码,否则它将继续失控。代码不会因为写更多代码而变得更好,它只会变得更糟,如果你想让它变得更好,你必须回去重写它。

    【讨论】:

    • +1 表示“编写更多代码不会使代码变得更好”。我希望你不介意,我要借它。
    • 当然,我可能是从我读过的书中得到的。随意引用它,无论是否注明出处=)。
    猜你喜欢
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多