2011-01-23 88 views
9

我想了解牛排的需要。我得到它像黄瓜,但你可以用它代替映射你的英语语言规格纯Ruby红宝石像黄瓜, 但它说,它主要是增加了周围的RSpec DSL的包装,并让您使用是什么牛排加不仅仅是Rails中测试使用水豚和RSpec?

摘自

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 

是这样吗?我从你还是跟水豚和RSpec匹配器繁重的例子似乎..所以为什么不使用水豚使用RSpec而不是添加喜欢在它的上面牛排的并发症呢?英语语言接受规范是唯一的价值主张吗?还是我错过了其他的东西?

感谢

回答

19

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

  • 一些语法糖别名(场景,背景,特征),它提醒开发商,他们正在编写一个接受的形式规范,而不是一个普通的规范。

  • 一个为Rails,帮助开发者便捷夫妇发电机迅速建立一个新项目或新的规范

  • 支持单独运行的验收规范,等等。

你可以认为牛排是RSpec的最小延伸。但更重要的不是技术层面的东西是相关联的牛排非技术方面的东西:

  • 它提供了一个做验收BDD使用RSpec。说你用牛排比解释你练习什么类型的测试要短。

  • 它提供的开发者做测试的这种特殊的形式,分享经验,问题和最佳实践社区(邮件列表,维基,Twitter帐户...)。

我不认为牛排增加了对任何人都熟悉RSpec的任何并发症,但如果你这样想,你真的不关心所有以前的事情,那么你不需要使用RSpec的所有,你可能会更快乐地使用Test :: Unit + Capybara。

2

你的预感是正确的可能和牛排进一步混淆RSPEC测试的命名空间。

的“接受”目录,例如,意味着你正在做承兑牛排,这是很少的情况下,一般使用在牛排黄瓜的原因测试。

更清晰的定义可知:http://en.wikipedia.org/wiki/Acceptance_testing

既然你排除黄瓜和使用RSPEC,这通常是称为利益相关者/非技术分析看,仔细一配合可能是集成测试一个DSL :

http://en.wikipedia.org/wiki/Integration_testing

我们正在逐步淘汰赞成rSpecs本土“请求”和“功能”的规格,基本上开箱即用的同样的事情的牛排。这可能值得检查一下。

https://www.relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec https://www.relishapp.com/rspec/rspec-rails/docs/feature-specs/feature-spec