单元测试如何更快地更改代码?

时间:2013-10-20 17:48:36

标签: python unit-testing testing automated-tests python-unittest

在这个着名的Stackoverflow question中提到了以下几点(粗体): 单元测试允许您快速对代码进行重大更改。你知道它现在有效,因为你已经运行了测试,当你需要进行更改时,你需要让测试再次运行。这可以节省数小时

就我而言,我用Python 2.7编写了一个程序。现在我开始使用PyUnit编写测试。测试将是另一个类(派生自“unittest.TestCase”),它将存在于不同的文件中。 (我不知道测试应该在开发之前或开发期间编写)

在我编写测试时,我开始想知道:如果我修改了我的程序代码并再次运行我的测试,那么测试仍然可以在没有更改的情况下工作,因为它没有改变(上面的观点表明你需要更改测试以使其工作!)程序代码本身已更改,而不是测试。

我不明白上述观点中的最后一句话是否有意义。我希望能找到能帮助我理解它的人。

由于

3 个答案:

答案 0 :(得分:1)

单元测试验证合同。如果合同不变,它们不会改变。程序员可以自由地修改实现,感觉自己不受UT的错误保护。

您引用的句子是关于更改合同 - UT表示合同发生变化,程序员应确保此更改合理。在设计良好的软件中,这比验证实施的正确性更容易,从而加快了过程的速度。

答案 1 :(得分:0)

测试应该实际执行包代码,这样打破包就会出现在测试中。

答案 2 :(得分:0)

我认为突出显示的句子应该没有更多的细节,比如原始的“合同”,或者模块的“要求”,其测试是否已经改变,或者没有改变。 我的快速阅读说,原始合同没有改变。但是你仍然需要运行,并确保它有效。或者,如果您的代码因修改而提高了性能,则应重新调整测试以反映改进情况。但是再次要求保持不变,并且您的代码表现更好。