Test::Unit 在 Rails 中仍然相关吗?
题
我正在以古老的方式学习 Rails。以阅读使用 Rails 进行敏捷 Web 开发(第 3 版)作为起点。我目前正在学习测试测试章节。我还知道其他 BDD 测试框架,例如 RSPec。所以我想知道 RSpec、Cucumber 等框架是否应该取代了解/使用 Test::Unit 的需要?它们本身是否相关并用于不同的目的?
更新:由于我是测试新手,我也很想获得有关哪些资源有助于我熟悉不同框架的反馈。
谢谢!
解决方案
世界已经变了!检查向下和给予好评@prusswan 强>
我想测试::单位仍然是相关的,即使有很多周围的BDD和其他测试工具。炒作
这就是说,如果你是为它,你可以绕过学习测试::单位,并与像RSpec的和早该马上开始,但有什么可说关于通过实例的敏捷Web开发以下书上看到,其中来自BDD的思想是从哪里来的。
我发现自己仍然在使用测试::单位的一些项目,因为它与Rails的,仍然是一个非常伟大的测试框架。
所以长话短说,我不认为这是过时的,但它不是最前沿了。 BDD是一种测试模式的转变,特别是如果你开始使用黄瓜和Webrat,但一旦你进入它非常神奇。早该是最容易过渡到,所以我会测试::单位开始,然后移动到早该,然后给RSpec的黄瓜一试。
您正在测试或测试至少兴趣!这是最好的部分。在结束这不要紧,你只要你满意的话用什么。
祝你好运!
其他提示
DHH自己是Test ::单位和RSpec /黄瓜避免件的狂热用户对于它们的相对复杂性中的一个。
我尊重它背后的家伙和我所有的试验,但RSPEC和黄瓜的扩散让我伤心。
RSpec的冒犯我美学上具有用于其上的测试/单位增加的复杂性没有明显的好处。
黄瓜是没有意义的我,除非你有客户阅读测试。为什么你会建立一个特定的测试解析器英语?
重要的当然是我们让人们的测试,所以工具应该没有太大的关系。但是,增加的复杂性还是打乱了我的。
“something.should be_true”概括起来审美说法对我来说相当不错。该呼叫伤害我的眼睛与“断言的东西”。
如果您有兴趣,请继续阅读Twitter的这些蠢特夫妇的。
我只是想发布 2012 年的更新:
出于 三 主要的 和 当前的 (可与 Rails 3.2 一起使用,只需进行一些小的修改)关于 RoR 的介绍性书籍,其中两本正在使用 Rspec(最多简短提及 Test::Unit),其中一本甚至计划使用 Rspec 莫尔 Rspec 为 下一版, 至此,这场“战斗”谁胜谁负,一目了然
请允许我选择性地引用 dhh:
当然,重要的是我们让人们进行测试,所以工具不应该太重要。
2014年重温:
Minitest 现在已取代 Test::Unit 作为当前版本 Rails 中的默认值。就我个人而言,我认为与它的前身相比,它值得仔细研究,原因有很多 -
- 其状态为默认状态
- 对水豚和硒的更好支持,很大程度上归功于像这样的宝石 这
- 相对较轻
- 大部分向后兼容 Test::Unit
Rspec的是一个完全独立的测试框架。早该是增强的Rails的内置框架,测试::单位。如果您在使用早该,你使用测试::单位,但具有更多功能和更简单,更可读的语法。
我试过Rspec的和早该对我来说,早该胜手了。我喜欢的方式更好。但是,这可能是口味的问题。
其他资源?我建议ZenTest和RedGreen宝石。 ZenTest提供自动测试,它可以让你自动运行您的测试每次更改文件的时间。这是一个很大的帮助。
关于灯具与工厂,如果您需要设置一组相互关联的对象,你正在测试双方或父母与子女的关系和/或测试许多一对多的关系,灯具的工作好了很多。事实上,我什至不知道你可以做到这一点的工厂。所以,不排除灯具 - 他们有他们的用途
有很多人谁还是喜欢测试::单位,并在一定程度上,这是一个个人喜好。但是,总的来说,你会发现在前面的RSpec远远活动。很酷的东西都被使用RSpec和黄瓜做,所以如果你不自己有个人喜好做,我可能会跳过测试::单位。你应该,但是,有足够的熟悉它来读取写入与之别人的测试,但我不会预见成为一个难题。