2012-03-20 60 views
1

我已经给出了一个源代码。我必须实施TDD方法。开发源代码的TDD方法

用于TDD的一般方法如何过是:

  1. 编写测试。
  2. 失败。
  3. 编写代码。
  4. 通过测试。
  5. 重构,如有必要。

    我应该如何添加测试到这样一个现有的源代码?
    对于这种情况的特别方法的建议值得欢迎。
    谢谢
+2

_有效地使用传统Code_作者:Michael Feathers - 具体来说,第2章。 – 2012-03-20 15:53:46

+0

[将遗留代码添加到单元测试](http://stackoverflow.com/questions/1541568/adding-unit-tests-to -degacy-code) – Gishu 2012-03-21 06:55:32

+0

同时在TDD上阅读更多内容,TDD需要测试优先(代码不能在测试前写入)。因此,无论是试图向现有代码添加(回填)测试,还是试图对TDD进行后续所有对源代码的更改?答案会根据你的情况而有所不同。首先,没有简单的答案 - 找到你想要关注的领域并提高测试覆盖率。提出测试和实施。第二,获得Austin推荐的WELC书。 – Gishu 2012-03-21 06:58:38

回答

1

不要忘记第0步:理解要求。你可以做的是发现需求,然后编写测试来证明需求是否满足。如果它会通过,那么很好。如果没有,你会发现一个错误。无论哪种方式,您都添加了回归测试。

你不能做的是对已写好的代码实施TDD(或任何开发练习):该船已航行。 可以使代码库上的未来开发受益于测试驱动的开发实践。

+0

谢谢格雷厄姆。我其实并不相信你的发言。只是进行绿色测试并不排除测试本身可能存在问题的可能性(特别是在这种情况下)。 – 2012-03-21 06:25:18

+0

那么你打算怎么做呢?测试测试代码?如果在某个时候你不相信自己能够正确编写一个简单的测试,它会一直在测试。 – 2012-03-21 09:46:50

+0

我不同意你的回答。然而我只是不服气。 – 2012-03-23 15:29:14

0

您可以将该代码库视为第三方代码并为其编写一些learning tests。学习测试将允许您发现代码,同时构建一个不错的测试套件以便进一步开发,以便稍后修改代码。

如果遗留代码足够小,那么可以这样做直到代码覆盖率接近90或100%。