我一直在阅读那些“受到感染”的人,这意味着他们不只是“获得”TDD,而且不能没有它。他们已经“改头换面”了。问题是,我该怎么做?
答案 0 :(得分:14)
“测试感染”的一部分原因是你已经足够使用TDD并且看到了足够的成功,你不想在没有它的情况下进行编码。一旦你完成了编写测试的循环,然后编码和重构,看到你的错误数量下降,你的代码变得更好,结果,它不仅像Zxaos说的那样成为第二天性,你很难去回到Code First。这是受到感染的。
答案 1 :(得分:14)
你已经读过有关TDD的文章;阅读更多内容并不会激发你的兴趣。
相反,你需要一个真正的个人成功故事。
这是怎么回事。从核心模块获取一些代码,代码不依赖于外部系统或太多其他子程序。这个例程的复杂程度和简单程度无关紧要。
然后开始编写单元测试。 (我假设你的语言有一个xUnit或类似的东西。)对测试真的很讨厌 - 测试每个边界情况,测试max-int和min-int,测试null,测试字符串和包含数百万个元素的列表,测试带有韩语和控制字符的字符串以及从右到左的阿拉伯语和引号和反斜杠以及句点和其他在未转义时会破坏的东西。
你会发现......错误!起初你可能认为这些错误并不重要 - 你还没有遇到这些问题,你的代码可能永远不会这样做等等。但是我的经验是,如果你继续向前推进你会感到惊讶在一些小问题上。最终很难相信 none 这些错误曾导致问题。
另外,你会得到很好的成就感,真的,非常好。我们知道代码永远不会完美,很少会出现bug,所以当我们耗尽了很多测试时我们确实感到自信,这很好。信心很好。
最后,我认为最后一次触发爱情的事件会在几周或几个月后发生。也许您正在修复错误或添加功能或重构某些代码,而您所做的事情将破坏单元测试。 “咦?”你会说,不理解为什么新的变化甚至与破损的测试有关。然后你会找到它,并找到启示。因为你真的不知道你破坏了代码,测试就救了你。
哈利路亚!
答案 2 :(得分:3)
了解TDD的开始,然后开始将其集成到您的工作流程中。如果你足够使用这些方法,你会发现它们成为第二天性,你将开始在该框架内构建所有开发任务。
此外,开始使用J-Unit(或X-Unit)框架作为您选择的语言。
答案 3 :(得分:1)
一句话,练习!做TDD会有一些开销,克服它的方法是练习并确保使用工具来帮助完成这个过程。你需要学习像手背一样的工具。一旦你学习了与你正在学习的过程一起工作的工具,它就会点击,你会先熟练地编写测试来清除代码。然后你将被“测试感染”。
我answered一个类似于此的问题。您可能还想查看它。我提到了一些工具并解释了学习TDD。在这些工具中,Resharper和选择一个好的模拟框架对于进行TDD至关重要。我不能强调学习这些工具以配合您使用的测试框架。