我正在尝试学习TDD和单元测试概念,我见过这个口号:“红灯、绿灯、重构”。我很好奇为什么在测试通过后你需要重构代码?
对我来说这毫无意义,因为如果测试通过,那么你为什么要改动代码呢?我还看到TDD的口号:“只编写足够使测试通过的代码。”
我能想到的唯一理由是,如果为了让测试通过变绿色,你只是随便编写任何旧代码。 你只是匆忙地拼凑出一个解决方案来过关。 那么显然代码就会一团糟,所以你需要清理它。
编辑:
我在另一个stackoverflow帖子上找到了这个链接,我认为它证实了我想到的唯一理由,即用于“通过”测试的原始代码可能非常简单,甚至是硬编码:http://blog.extracheese.org/2009/11/how_i_started_tdd.html