Rspec与TestUnit

我开始为我的rails 3.0.8应用程序创build一个testing套件的计划阶段。 我试图决定使用哪个testing框架/gem。 通常我更愿意尽可能地坚持Rails约定。 但是,这意味着使用TestUnit。 有很多竞争的testing框架可供select,这些testing框架是作为TestUnit的替代品而创build的。 TestUnit多年来变得更好,还是不是一个很好的竞争者?

我也听说过关于rspec的很多好东西。 rspec和TestUnit在function方面是否接近,还是rspec将TestUnit从水中吹走?

无论我select什么框架,我都希望它有一个良好的支持基础(大量的用户和文档),易用性/简单性和持久的未来。

Test :: Unit和Rspec都是非常好的解决scheme。 至于我,我更喜欢在我的Rails项目中使用RSpec – 因为它有许多自动化解决scheme,比如自动testing,高亮语法,快捷命令(如rake spec和其他使用testingeaser的东西。 但是在我的普通ruby脚本中,我使用了Test :: Unit:当你不需要复杂的testing(整合和其他)时,它非常轻便,

答案是味道的问题,在一个项目中使用,并find自己喜欢什么。 (我做Test :: Unit,RSpec对我有很多糖)。

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

我更喜欢和使用这些gem进行testing

  • Rspec的
  • Faker(用于为数据库创build随机和正确的数据)
  • 制造(用于简单创build实例)

以rspec开头看看这个演示文稿。 它包含了所有必要的例子:

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

还请阅读rspec上的这些文章:

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

这篇Ruby Inside文章 ,特别是如果你关注链接并阅读评论,就可以对Test :: Unit和RSpec的相对优点进行深入的讨论。 一个关键的区别似乎是:

  • 有非技术性客户的人更有可能更加看好RSpec和黄瓜;
  • 其他人则更倾向于使用Test :: Unit等更直接的系统。

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

如果你有一个大的网站,你可以使用rspeccucumberwebratgem,这是一个很好的组合。 起初会很麻烦,但后来会是一个很大的好处。

你可以看下面的railscasts集以获得关于这些gem的更多信息:
155从黄瓜开始
156 Webrat
157 RSpec匹配器和macros
159更多关于黄瓜

还有一些像capybara这种相对较新和有前途的gem,但老实说,我没有尝试。