9

ステーキの必要性を理解しようとしています。Cucumber のように英語の仕様を Ruby にマッピングする代わりに純粋な Ruby を使用できることを除いて、Cucumber に似ていると思いますが、主に 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

それだけですか?例から、あなたはまだ Capybara と RSpec のマッチャーを使って大変な作業をしているように思えます..では、Steak のような複雑なものを追加する代わりに、RSpec で Capybara を使用しないのはなぜですか? 英語での受け入れ仕様の説明は唯一の価値提案ですか?それとも他に何か不足していますか?

ありがとう

4

2 に答える 2

19

技術的に言えば、ステーキは3つのことを追加するだけです:

  • エイリアス (シナリオ、背景、機能) の形式の構文糖衣。開発者は、通常の仕様ではなく、受け入れ仕様を作成していることを思い出させます

  • 開発者が新しいプロジェクトや新しい仕様をすばやくセットアップするのに役立つ、Rails 用の便利なジェネレーターがいくつかあります。

  • とりわけ、受け入れ仕様を分離して実行するためのRakeサポート。

Steak は RSpec の最小限の拡張と考えることができます。しかし、技術的なことよりもさらに重要なのは、Steak に関連する非技術的なことです。

  • これは、RSpec で受け入れ BDD を行うための名前を提供します。Steak を使用しているということは、どのような種類のテストを行っているかを説明するよりも簡潔です。

  • この特定の形式のテストを行い、経験、問題、およびベスト プラクティスを共有する開発者のコ​​ミュニティ(メーリング リスト、wiki、Twitter アカウントなど) を提供します。

Steak が RSpec に精通している人にとって複雑になるとは思いませんが、もしあなたがそう考えていて、以前のすべてのことをあまり気にしないのであれば、RSpec をまったく使用する必要はありません。 Test::Unit + カピバラだけです。

于 2011-01-23T11:49:22.553 に答える
2

あなたの勘はおそらく正しいのですが、Steak は rSpec テスト用の名前空間をさらに混乱させています。

たとえば、「acceptance」ディレクトリは、ステーキで受け入れテストを行っていることを意味しますが、これはまれなケースであり、通常はキュウリよりもステーキを使用する理由です.

より明確な定義については、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

于 2013-04-06T02:20:16.673 に答える