2011-01-23 86 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