几周前,我开始了我的第一个TDD项目。到目前为止,我只读过一本关于它的书。如何用TDD开发复杂的方法
我主要关心的是:如何为复杂的方法/类编写测试。我写了一个计算二项分布的类。因此,这个类的方法将n,k和p作为输入,并计算出resp。可能性。 (实际上它做得更多,这就是为什么我必须自己写,但为了便于说明,我们坚持这个类的描述。)
我做了什么来测试这种方法是:复制一些不同的表我在网上找到我的代码,在表中随机选择一个条目,并提出了要求。 n,k和p的值加入到我的函数中,并查看结果是否接近表中的值。我为每张桌子多次重复这一点。
现在这一切都很好,但在编写测试之后,我不得不花费几个小时来真正编写功能。从阅读这本书,我的印象是,我不应该编写超过几分钟的代码,直到测试再次显示绿色。我在这里做错了什么?当然,我已经用很多方法打破了这个任务,但它们都是私有的。
一个相关的问题:从表中随机选择数字是一个坏主意吗?如果出现错误,我将显示此次运行使用的随机种子,以便我可以重现此错误。
“我的印象是,我不应该编写超过几分钟的代码,直到测试再次显示绿色。”哪里 - 具体地说 - 你是否得到了这样的印象?请提供报价或参考。这很少是真的,我很好奇你在哪里阅读/看到/听到过这个。 – 2009-08-25 13:11:49
这是在德国的一本书“Testegetriebene Entwicklung mit JUnit&FIT”中,由Frank Westphal,1st Edition编写的。例如。在第13页,前两句话。 – matthias 2009-08-25 13:23:43
由于您很可能无法访问本书,因此我尝试了一下翻译:“测试驱动开发与简单设计之间的交互作用导致了分钟编码的循环,实际上,您的代码不会长于只需几分钟,不用通过测试来关闭反馈回路。“ (嗯,我在这里接近我的英语的限制,希望这个翻译是正确的。) – matthias 2009-08-25 13:41:08