Rspec与TestUnit

dhu*_*han 42 ruby testing ruby-on-rails testunit ruby-on-rails-3

我正在开始为rails 3.0.8应用程序创建测试套件的规划阶段.我正在尝试决定使用哪种测试框架/宝石.通常我更喜欢尽可能坚持Rails惯例.但是,这意味着使用TestUnit.有许多竞争的测试框架可供选择,它们是作为TestUnit的替代品而创建的.多年来TestUnit变得更好了,还是不是一个很好的竞争者?

我也听说过很多关于rspec的好东西.rspec和TestUnit在功能方面是否接近,或者rspec是否将TestUnit从水中吹走?

无论我选择哪种框架,我都希望它拥有良好的支持基础(大量用户和文档),易用性/简单性和持久的未来.

bor*_*r1s 37

Test :: Unit和Rspec都是非常好的解决方案.至于我,我更喜欢在我的Rails项目中使用RSpec - 因为它有许多自动解决方案,如自动测试,突出显示语法,快捷命令等,rake spec以及使用测试缓动器的其他东西.但是在我的普通ruby脚本中,我使用了Test :: Unit - 当你不需要复杂的测试时(积分和其他),它非常轻巧和明确


ger*_*tas 14

答案是品味问题,在一个项目中使用,并找到自己喜欢的东西.(我做测试::单位,RSpec对我来说有很多糖).

更新2014:由于Ruby 2.x内置了MiniTest,我建议最终检查MiniTest :: Spec,这是简单的BDD扩展.您可以混合使用"describe"和"it"块来很好地构建测试上下文.如果你想要更多,它还提供"must_be .."匹配器assert.


mak*_*ni4 8

我更喜欢并使用这些宝石进行测试

  • Rspec的
  • Faker(用于为数据库创建随机和适当的数据)
  • 制作(用于简单的创建实例)

从rspec开始,请看一下这个演示文稿.它包含所有必要的例子:

http://kerryb.github.com/iprug-rspec-presentation

另请阅读这些关于rspec的文章:

http://relishapp.com/rspec/rspec-rails


sam*_*per 6

这篇Ruby Inside文章,特别是如果你按照链接阅读评论,提供了对Test :: Unit和RSpec相对优点的全面讨论.一个关键的区别似乎是:

  • 拥有非技术客户的人更有可能更有利地看待RSpec和Cucumber;
  • 其他人更倾向于选择更直接的系统,如Test :: Unit.

另请参阅Michael Hartl的Rails教程的这一部分,以比较RSpec和Cucumber.