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上的这些文章:
这篇Ruby Inside文章 ,特别是如果你关注链接并阅读评论,就可以对Test :: Unit和RSpec的相对优点进行深入的讨论。 一个关键的区别似乎是:
- 有非技术性客户的人更有可能更加看好RSpec和黄瓜;
- 其他人则更倾向于使用Test :: Unit等更直接的系统。
另请参阅Michael Hartl的Rails教程的这部分,以便比较RSpec和Cucumber。
如果你有一个大的网站,你可以使用rspec
与cucumber
和webrat
gem,这是一个很好的组合。 起初会很麻烦,但后来会是一个很大的好处。
你可以看下面的railscasts集以获得关于这些gem的更多信息:
155从黄瓜开始
156 Webrat
157 RSpec匹配器和macros
159更多关于黄瓜
还有一些像capybara
这种相对较新和有前途的gem,但老实说,我没有尝试。
如果你开始testingRails应用程序的旅程,我会build议你开始用TestUnit来做。 您可以在http://www.codeschool.com/courses/rails-testing-for-zombies上find关于最佳testingrails应用程序和最佳实践的非常好的课程。如果您在testing方面更有经验,可以尝试RSpec。;