除了在Rails测试中使用Capybara和RSpec之外,Steak还能添加什么?

nol*_*oli 9 rspec ruby-on-rails cucumber capybara rspec2

我正在努力了解牛排的必要性.我认为它像Cucumber一样,除了你可以使用纯红宝石而不是像Cucumber那样将你的英语语言规范映射到ruby,但它说它主要是在RSpec DSL周围添加一个包装器,并让你使用它

:取自http://jeffkreeftmeijer.com/2010/steak-because-cucumber-is-for-vegetarians/

module Spec::Example::ExampleGroupMethods
  alias scenario example
  alias background before
end

module Spec::DSL::Main
  alias feature describe
end
Run Code Online (Sandbox Code Playgroud)

这就是全部?我从例子中可以看出,你仍然在使用Capybara和RSpec匹配器进行繁重的工作.那么为什么不使用Capybara和RSpec而不是在它之上添加像Steak这样的复杂功能呢?英语语言接受规范描述是唯一的价值主张,还是我错过了其他的东西?

谢谢

小智 19

从技术上讲,牛排只增加了三件事:

  • 一些别名形式的语法糖(场景,背景,功能)提醒开发人员他们正在编写验收规范,而不是常规规范.

  • 一些方便的Rails 生成器,可以帮助开发人员快速设置新项目或新规范

  • 除了其他方面,Rake支持单独运行您的验收规范.

您可以将Steak视为RSpec的最小延伸.但比技术更重要的是与Steak相关的非技术性事物:

  • 它提供了使用RSpec进行接受BDD 的名称.说你使用牛排比解释你练习的测试类型要短.

  • 它提供了一个开发人员社区(邮件列表,wiki,Twitter帐户......),他们正在进行这种特定的测试形式,分享经验,问题和最佳实践.

我不认为牛排给任何熟悉RSpec的人增加了任何复杂功能,但是如果你这么认为并且你并不真正关心以前的所有事情,那么你根本不需要使用RSpec,你可能会更乐意使用只测试:: Unit + Capybara.