我正在考虑在Ruby on Rails中重新构建我的博客(目前在PHP中,但是<100行非布局代码)只是为了它的乐趣。我想在Rails中创建另一个项目,但在我尝试创建一个完整的项目之前,我应该学习Rails(比hello world更多)。
在重建我的博客时,我想做的另一件事是至少弄清楚TDD是什么。那么你将如何采用测试驱动的方法来创建博客?你会写什么测试?你会怎么开始?
每当我想象写博客时,最终需要对单个组件进行一百万次测试才能完全测试它。如何避免编写太多测试?
另外,我正在制作这个社区维基,因为我打算将它基本上变成一个迷你教程/知识库......
我继续向这个问题投了一笔钱,所以也许我真的可以得到一个很好的答案..
答案 0 :(得分:6)
而不是谈论如何测试驱动某些特定软件的开发,我建议你阅读并学习如何练习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)
有趣的是,这正是我几天前开始的。我正在使用RSpec和Cucumber。我首先为Article
和Comment
模型编写了几个规范。当它们全部变绿时,我写了Cucumber测试来实现视图,控制器等。
这对我来说真的很好,但我觉得从黄瓜开始也很好,因为很多人似乎都喜欢这种方法。
如果您对RSpec和黄瓜知之甚少,我强烈推荐Railscasts:
我也很喜欢Peepcode截屏视频,但与有轨电视节目不同,它们各占9美元。