我一直在阅读那些被"测试感染"的人,这意味着他们不只是"获得"TDD,而且也不能没有它.他们已经"改头换面"了.问题是,我该如何做到这一点?
被"测试感染"的部分原因在于你已经足够使用TDD并且看到了足够的成功,你不想在没有它的情况下进行编码.一旦你完成了编写测试的循环,然后编码和重构,看到你的错误数量下降,你的代码变得更好,结果,它不仅像Zxaos说的那样成为第二天性,你很难去回到Code First.这是被测试感染的.
你已经读过TDD了; 阅读更多不会激动你.
相反,你需要一个真正的个人成功故事.
这是如何做.从核心模块获取一些代码,代码不依赖于外部系统或太多其他子程序.无论例程有多复杂或简单.
然后开始编写单元测试.(我假设你的语言有一个xUnit或类似的东西.)对测试真的很讨厌 - 测试每个边界情况,测试max-int和min-int,测试null,测试字符串和包含数百万个元素的列表,测试字符串使用韩语和控制字符以及从右到左的阿拉伯语和引号和反斜杠以及句点和其他易于破坏的东西,如果没有转义的话.
你会发现......虫子!起初你可能认为这些错误并不重要 - 你还没有遇到这些问题,你的代码可能永远不会这样做等等.但我的经验是,如果你继续前进你会惊讶在一些小问题上.最终,它成为很难相信,没有这些缺陷会不断出现问题了.
另外,你可以获得很好的成就感,真的,非常好.我们知道代码永远不会完美,很少会出现bug,所以当我们耗尽了这么多测试时我们确实感到自信,这很好.信心是一种不错的感觉.
最后,我认为引发爱情的最后一个事件将在几周或几个月后发生.也许您正在修复错误或添加功能或重构某些代码,而您所做的事情将破坏单元测试."咦?" 你会说,不理解为什么新的变化甚至与破损的测试有关.然后你会找到它,并找到启示.因为你真的不知道你破坏了代码,测试就救了你.
哈利路亚!