gpt4 book ai didi

unit-testing - 重构时如何确保不破坏测试代码?

转载 作者:行者123 更新时间:2023-12-04 05:21:01 26 4
gpt4 key购买 nike

代码不断发展,并且如果不进行修剪,它也会腐烂,在这方面有点像花园。修剪意味着重构,使其能够满足其不断发展的目的。

如果我们具有良好的单元测试覆盖范围,那么重构将更加安全。
测试驱动的开发迫使我们在生产代码之前先编写测试代码。因此,我们无法测试实现,因为没有任何实现。这使得重构生产代码变得更加容易。

TDD周期是这样的:编写测试,测试失败,编写生产代码直到测试成功,重构代码。

但是从我所看到的,人们重构了生产代码,而不是测试代码。随着测试代码的衰减,生产代码将变得过时,然后一切都陷入困境。因此,我认为有必要重构测试代码。

问题出在这里:如何确保重构代码时不会破坏测试代码?

(我已经完成了一种方法https://thecomsci.wordpress.com/2011/12/19/double-dabble/,但是我认为可能会有更好的方法。)

显然有一本书http://www.amazon.com/dp/0131495054,我还没有读过。

还有一个关于此的Wiki页面http://c2.com/cgi/wiki?RefactoringTestCode,它没有解决方案。

最佳答案

重构测试是一个两步过程。简单地说:首先,您必须使用要测试的应用程序,以确保重构时测试能够通过。然后,重构的测试变为绿色后,您必须确保它们将失败。但是,要正确执行此操作需要一些特定步骤。

为了正确测试重构的测试,您必须更改被测试的应用程序以导致测试失败。仅该测试条件应失败。这样,除了通过测试,您还可以确保测试正确失败。您应该争取一个测试失败,但是在某些情况下(例如不是单元测试)是不可能的。但是,如果重构正确,则重构测试中将只有一个失败,而其他失败将存在于与当前重构无关的测试中。需要了解您的代码库才能正确识别这种类型的级联故障,并且这种类型的故障仅适用于单元测试以外的测试。

关于unit-testing - 重构时如何确保不破坏测试代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8568111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com