为了好玩,我正在考虑用Ruby on Rails重写我的博客(目前使用PHP,但不超过100行非布局代码)。我想用Rails做另一个项目,但在尝试创建一个完整的项目之前,我应该学习Rails(而不是hello world)。
在重写我的博客时,我想做的另一件事是至少弄清楚TDD是关于什么的。那么,您将如何采用测试驱动的方法来创建博客呢?你会写什么测试?你将如何开始呢?
每次我想象写一篇博客,最终都需要对一个组件进行一百万次测试才能完全测试它。如何避免编写过多的测试?
此外,我正在制作这个社区维基,因为我打算把它基本上做成一个迷你教程/知识库……
我对这个问题进行了悬赏,也许我可以得到一个好的答案。
发布于 2010-04-30 11:12:19
TDD更多的是关于设计而不是测试。很多人错过了这一点,最终会实践一些感觉上不太像TDD的东西。使用TDD,您正在编写一个测试来驱动代码中的更改。您不需要担心编写太多测试,因为只有在有更多生产代码需要编写(因此需要测试更多代码)的情况下,才应该编写测试。同样,TDD不仅仅是为您的代码编写大量测试,而是最终会有许多测试,因此,您将拥有一套非常强大的测试,以便在代码增长和更改时为您提供反馈。
与其谈论如何测试驱动某个特定软件的开发,我建议您阅读并学习如何实践TDD,并弄清楚,正如您所说的,它是关于什么的。值得考虑的一本好书是:Growing Object Oriented Software, Guided by Tests。这本书使用Java,但它是使用TDD构建相当复杂的软件的一个很好的实际应用程序。
TDD有很多东西,如果你想学习并尝试实践它,我建议你真正深入研究几个好的来源,因为这个问题的答案不止这些。
发布于 2010-05-26 05:34:49
我和Pete有类似的观点,更多的是关于设计。
在查看质量信息之前跳过它可能不会给你带来结果。这可能只会让你觉得:这些测试感觉很痛苦。这是一个认识到存在设计问题,但它不会告诉你如何改进它。
你说“目前在PHP中,但是<100行非布局代码”,如果是这样的话,可能会有一些特性。如果你专注于实际需要的特性,当然也应该有比特性数量更少的测试,但只要这些是正确的单元测试,数量就不应该爆炸- check this video。
发布于 2010-05-26 02:49:14
看看利益相关者,以及他们想要实现的目标。从那里开始是很重要的,因为它可以让你正确地确定优先级(即不是最有趣的技术部分,而是最具商业价值的部分)。开发人员是一个利益相关者,减少他的恐惧(不能构建一些东西)是一个有效的目标。
关于设计的想法写在测试中。从利益相关者的最终目标开始,从那里向后工作到开始(时间反转)。这确保了你专注于什么,而不是如何。对象之间的交互比对象属性更重要。
请参见:
https://stackoverflow.com/questions/2742031
复制相似问题