2013-10-20 100 views
0

在这个着名的Stackoverflow question中提到了以下要点(粗体): 单元测试允许您快速对代码进行大的更改。你知道它现在可以工作,因为你已经运行了测试,当你做出需要做的改变时,你需要重新开始测试。这节省了小时数单元测试如何更快地对代码进行更改?

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

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

我不明白上述观点的最后一句话是如何解释的。我希望我能找到能帮助我理解的人。

谢谢

+0

“_在我的情况下,我用Python 2.7编写了一个程序,现在我开始使用PyUnit编写测试了。”如果你在括号中表示意思,那是你的第一个错误。如果你对单元测试非常认真,你应该考虑测试驱动开发,从开始写入一个应该通过的失败测试,​​然后编写代码使其通过,然后添加一个失败的测试,然后通过测试。 _ad无限_。 –

回答

0

该测试应该实际执行包代码,以便打破包会显示在测试中。

+0

Hi Thomas,测试(或测试代码)如何执行包代码?你是什​​么意思? –

1

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

您引用的句子是关于更改合同 - UT表示合同更改,程序员应确保此更改合理。在精心设计的软件中,这比验证实施的正确性更容易,因此加快了过程。

0

我认为突出显示的句子应该有更多的细节,例如,如果模块的原始“合同”或“要求”被更改或未更改。 我的快速阅读说,原始合同并没有改变。但是你仍然需要跑步,并确保它能够正常工作。或者如果您的代码由于您的修改而改进了性能,则应重新调整测试以反映改进。但是要求仍然相同,并且您的代码表现更好。

相关问题