【问题标题】:Rspec vs. TestUnitRspec 与 TestUnit
【发布时间】:2011-06-17 06:53:58
【问题描述】:
我正在开始为我的 rails 3.0.8 应用程序创建测试套件的规划阶段。我正在尝试决定使用哪个测试框架/宝石。通常我更喜欢尽可能地遵守 Rails 约定。但是,这意味着使用 TestUnit。有许多竞争测试框架可供选择,它们是作为 TestUnit 的替代品而创建的。多年来,TestUnit 是否变得更好,或者它不是一个很好的竞争者?
我还听说了很多关于 rspec 的好消息。 rspec 和 TestUnit 在功能上是否接近,或者 rspec 是否会将 TestUnit 彻底淘汰?
无论我选择什么框架,我都希望它具有良好的支持基础(大量用户和文档)、易用性/简单性和持久的未来。
【问题讨论】:
标签:
ruby-on-rails
ruby
ruby-on-rails-3
testing
testunit
【解决方案1】:
Test::Unit 和 Rspec 都是非常好的解决方案。至于我,我更喜欢在我的 Rails 项目中使用 RSpec——因为它有许多自动解决方案,如自动测试、突出显示语法、rake spec 等快捷命令以及其他使使用测试更轻松的东西。但是在我的普通 ruby 脚本中,我使用 Test::Unit - 当您不需要复杂的测试(集成和其他测试)时,它非常轻量且简单
【解决方案2】:
答案是品味问题,在一个项目中同时使用这两种方法,然后找到自己喜欢的东西。 (我做 Test::Unit,RSpec 对我来说有很多糖分)。
2014 年更新:由于 Ruby 2.x 内置了 MiniTest,我建议最终检查 MiniTest::Spec,这是简单的 BDD 扩展。您可以混合使用“describe”和“it”块来很好地构建测试上下文。如果您想要超过assert,它还提供“must_be..”匹配器。
【解决方案5】:
如果您有一个大型网站,您可以将rspec 与cucumber 和webrat gem 结合使用,这是一个很好的组合。一开始会很麻烦,但以后会有很大的好处。
您可以观看以下 railscasts 剧集以了解有关这些宝石的更多信息:
第155章 从黄瓜开始
第156话
157 RSpec 匹配器和宏
159 更多关于黄瓜
还有一些其他的gem,比如capybara,相对较新,很有前途,但老实说我没试过。