有人会说别的,但我建议您将TDD和单元测试分开。TDD是一个很大的思想转变,单元测试最初似乎需要时间。如果您将它们视为一项,则有可能无法立即看到足够的收益,并且有诱惑力将其简单地删除TDD和单元测试。
首先是编写一些单元测试。首先,它们不一定是完美的。只需自学一下如何测试少量代码,以及如何使用模拟来隔离组件。
这是最大的时间获取者,但迄今为止收益最大。一旦发现不再需要浏览14个网页即可转到要测试的网页,您就会知道我在说什么。
对我来说,尤里卡最重要的时刻是一个Windows应用程序,当时我试图测试一个正则表达式,要求我先填写两种表格才能使用它。我安装了NUnit并围绕该方法编写了一个测试,然后看到节省了数小时的测试时间。然后,我添加了更多测试来处理边缘情况。等等。
然后学习写好单元测试。了解快速编写的易碎测试与编写许多单独的测试之间的平衡。这很容易。经验教训是,理想情况下,每个测试只能测试一件事,但是您很快就会了解需要花多长时间,因此您开始对规则稍加调整,直到编写出每次代码更改都中断的测试,然后再回到正确的平衡(后者比后者更接近前者)。
正如我所说,TDD是您工作方式的重大精神转变。但是,一旦您已经编写了测试,就不会在开发过程中花费很多时间。我保证,您会看到自己的编码风格得到改善。或者更确切地说,如果您不放下它,那不适合您。
最后要记住的一点是,TDD不仅限于单元测试。验收测试驱动设计是TDD的一部分。另一个不要将它们混在脑海中的好理由。