我正在学习Rails这个古老的方式.通过阅读Agile Web Development with Rails(第3版)作为起点.我目前正在教授测试的章节.我也知道其他BDD测试框架,如RSPec.所以我想知道RSpec,Cucumber,Shoulda等框架是否取代了知道/使用Test :: Unit的需要?它们本身是否相关并用于不同目的?
更新:由于我是测试的新手,我也希望获得有关哪些资源对于使用不同框架的方式有用的反馈.
谢谢!
世界变了!检查并upvote @prusswan
我认为即使围绕BDD和其他测试工具有很多炒作,Test :: Unit仍然具有相关性.
话虽这么说,如果你愿意,你可以绕过学习Test :: Unit并立即开始使用像RSpec和Shoulda这样的东西,但是关于通过敏捷Web开发手册中的例子来看看有什么可说的.来自BDD的想法来自哪里.
我发现自己仍然在某些项目中使用Test :: Unit,因为它附带了Rails,并且仍然是一个非常好的测试框架.
长话短说,我不认为它已经过时,但它不再是最前沿.BDD是一种测试范式的转变,特别是如果你开始使用Cucumber和Webrat,但是一旦你进入它就太棒了.Shoulda是最容易过渡到的,所以我先从Test :: Unit开始,然后转到Shoulda,然后尝试给RSpec和Cucumber.
您正在测试或至少对测试感兴趣!那是最好的部分.最后,只要你对它感到满意,你使用什么并不重要.
祝好运!
DHH本人是Test :: Unit的狂热用户之一,因其相对复杂性而避免使用RSpec/Cucumber.
我尊重它背后的人,我都是为了实验,但rSpec和Cucumber的扩散让我感到难过.
RSpec在审美上冒犯了我,因为它增加了测试/单元的复杂性,没有明显的好处.
除非你有客户阅读测试,否则黄瓜对我没有意义.为什么要为英语构建特定于测试的解析器?
重要的是我们让人们进行测试,所以工具不应该太重要.但增加的复杂性仍然让我感到不安.
"something.should be_true"很好地总结了我的美学论点.这个召唤伤害了我的眼睛而不是"断言".
如果您有兴趣,请继续阅读这些twits的推特.
我想我会发布2012年的更新:
在三个 主要和当前(可用于Rails 3.2,只有一些小修改)关于RoR的入门书籍中,其中两个使用Rspec(最多只提及Test :: Unit),其中一个是计划就连moar Rspec的为下一个版本,所以很清楚谁是这个"战"的赢家,现在
并允许我有选择地引用dhh:
重要的是我们让人们进行测试,所以工具不应该太重要.
重温2014年:
Minitest现在取代了当前版本的Rails中的Test :: Unit作为默认值.就我个人而言,由于种种原因,我认为它与其前身相比值得仔细研究 -
其状态为默认状态
对于水豚和硒,很大一部分是由于像宝石更好地支持该
相对轻巧
大部分向后兼容Test :: Unit