您如何使用TDD方法制作博客?

时间:2010-04-30 02:49:27

标签: ruby-on-rails unit-testing tdd blogs

我正在考虑在Ruby on Rails中重新构建我的博客(目前在PHP中,但是<100行非布局代码)只是为了它的乐趣。我想在Rails中创建另一个项目,但在我尝试创建一个完整的项目之前,我应该学习Rails(比hello world更多)。

在重建我的博客时,我想做的另一件事是至少弄清楚TDD是什么。那么你将如何采用测试驱动的方法来创建博客?你会写什么测试?你会怎么开始?

每当我想象写博客时,最终需要对单个组件进行一百万次测试才能完全测试它。如何避免编写太多测试?

另外,我正在制作这个社区维基,因为我打算将它基本上变成一个迷你教程/知识库......

我继续向这个问题投了一笔钱,所以也许我真的可以得到一个很好的答案..

5 个答案:

答案 0 :(得分:6)

TDD更多的是关于设计然后是关于测试。很多人都想念这个并且最终会练习一些不太像TDD的东西。使用TDD,您正在编写一个测试来推动代码更改。您不必担心编写太多测试,因为如果要编写更多的生产代码(因此需要测试更多代码),您应该只编写测试。同样,TDD并不只是为您的代码编写大量测试,但最终会进行大量测试,因此,您将拥有一套非常强大的测试,以便在代码增长和更改时为您提供反馈。

而不是谈论如何测试驱动某些特定软件的开发,我建议你阅读并学习如何练习TDD,并如你所说,弄清楚它的全部内容。一本值得考虑的好书是:Growing Object Oriented Software, Guided by Tests。本书使用Java,但它是使用TDD构建相当复杂的软件的真实应用程序。

TDD有很多内容,如果你想学习并尝试练习它,我建议你真正深入研究一些好的资料来源,因为这个问题的答案还有很多。

答案 1 :(得分:1)

了解利益相关者以及他们想要实现的目标。从那里开始是很重要的,因为它允许您正确地确定优先级(即不是在最有趣的技术部分,而是在具有最大商业价值的部分)。开发人员是利益相关者,减少他的恐惧(无法构建某些东西)是一个有效的目标。

关于设计的思考记录在测试中。从利益相关者的最终目标开始,从那里开始向后工作(时间倒置)。这可以确保您专注于什么,而不是如何。对象之间的交互比对象属性更重要。

见:

答案 2 :(得分:1)

我对Pete有类似的看法,更多的是关于设计。

在查看质量信息之前跳过它可能不会给你带来结果。它可能只会让你思考:这些测试感觉像是一种痛苦。这意味着存在设计问题,但它不会告诉您如何改进它

你说“目前在PHP中,但是&lt; 100行非布局代码”,如果是这种情况,可能会有一些功能。如果你专注于所需的实际功能,那么当然也应该有少量测试/高于功能的数量,但只要这些是正确的单元测试,数字就不会爆炸 - check this video

答案 3 :(得分:0)

首先编写Cucumber功能,以提供“从外到内”的覆盖范围。这些应该能够自己测试大部分功能。很容易写。博客没有那么多测试,毕竟它只是帖子和评论,对吧?看看我的blorgh应用程序,它是使用Cucumber开发的Rails应用程序。

答案 4 :(得分:0)

有趣的是,这正是我几天前开始的。我正在使用RSpecCucumber。我首先为ArticleComment模型编写了几个规范。当它们全部变绿时,我写了Cucumber测试来实现视图,控制器等。

这对我来说真的很好,但我觉得从黄瓜开始也很好,因为很多人似乎都喜欢这种方法。

如果您对RSpec和黄瓜知之甚少,我强烈推荐Railscasts

我也很喜欢Peepcode截屏视频,但与有轨电视节目不同,它们各占9美元。