我一直在阅读有关“测试感染者”的文章,这意味着他们不仅“感染”了 TDD,而且没有它就无法生存。他们已经“焕然一新”了。问题是,我怎么会变成这样呢?

有帮助吗?

解决方案

被“测试感染”的部分原因是你已经足够多地使用 TDD 并且看到了足够多的成功,以至于 没有它你就不想编码. 。一旦你经历了先编写测试,然后编码和重构的循环,并看到你的错误数量下降,你的代码因此变得更好,它不仅像 Zxaos 所说的那样成为第二天性,你会很难继续下去回到代码第一。这是正在测试感染。

其他提示

您已经阅读过有关 TDD 的内容;阅读更多内容不会让你兴奋。

相反,您需要一个真正的个人成功故事。

就是这样。从核心模块中获取一些代码,这些代码不依赖于外部系统或太多其他子例程。无论例程多么复杂或简单。

然后开始针对它编写单元测试。(我假设你有一个 xUnit 或类似的语言。)测试真的很令人讨厌——测试每个边界情况,测试 max-int 和 min-int,测试 null,测试字符串和包含数百万个元素的列表,使用韩语、控制字符、从右到左的阿拉伯语、引号、反斜杠、句点以及其他如果不转义的话往往会破坏的东西来测试字符串。

你会发现的是......错误!起初,您可能认为这些错误并不重要——您还没有遇到这些问题,您的代码可能永远不会这样做,等等。ETC..但我的经验是,如果你继续前进,你会惊讶地发现小问题的数量。最终变得很难相信 没有任何 这些错误将 曾经 造成问题。

另外,当某件事做得非常非常好时,你会获得巨大的成就感。我们知道代码永远不会完美,也很少没有错误,所以当我们用尽如此多的测试并确实感到自信时,这很好。自信是一种美好的感觉。

最后,我认为最后一次引发爱情的事件将在几周或几个月后发生。也许您正在修复错误或添加功能或重构某些代码,而您所做的某些事情会破坏单元测试。“嗯?”您会说,不明白为什么新更改甚至与破坏测试有关。然后你就会找到它,并找到启蒙。因为你 真的不知道 你正在破坏代码,而测试拯救了你。

哈利路亚!

首先了解 TDD,然后开始将其集成到您的工作流程中。如果您充分使用这些方法,您会发现它们已成为您的第二天性,并且您将开始在该框架内构建所有开发任务。

另外,开始使用适合您选择的语言的 J-Unit(或 X-Unit)框架。

一个字,练!进行 TDD 会产生一些开销,克服它的方法是练习并确保您正在使用工具来帮助该过程。你需要像手背一样学习这些工具。一旦你学会了与你正在学习的过程相适应的工具,那么它就会成功,你将首先熟练地编写测试来刷新代码。那么你就会被“测试感染”。

回答了 不久前有一个类似的问题。您可能也想检查一下。我提到了一些工具并解释了学习 TDD。在这些工具中,Resharper 和选择一个好的模拟框架对于进行 TDD 至关重要。我不能强调学习这些工具来配合您正在使用的测试框架。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top