2012-10-30 13 views
20

キュウリでうまく機能するフィーチャ(フィーチャファイル)があります。キュウリの複数の背景を持つ同じ機能をテストするには

この機能のすべてのシナリオの背景は、ユーザーを設定した後、スーパーバイザーとしてログインします。

Background: 
    Given I am logged in as a supervisor with an existing supervisee 

    ...loads of scenarios 

しかし、アプリケーションの設計/目標は変更されており、スーパーユーザーまたはユーザーとしてログインしても、同じシナリオがすべて機能するはずです。スーパーバイザー/ユーザーにとって設計が対称でないアプリケーションの残りの部分では、これは当てはまりません。

異なる背景のフィーチャファイル全体をコピーして貼り付けるのを避けるための元気な方法はありますか?バックグラウンド(例:Either:Or:スタンザ)を使用してパラメータを設定する方法や、シナリオの負荷で外部ファイルを取得する方法のようには思われません。アイデア?それは私だった場合、私はちょうど吸うでしょう

Background: 
    Given I am logged in as an existing supervisee 

    Include Scenarios: 
    supervisor.features 
+0

あなたは何をしたいのか分かりません。あなたは背景を表示し、現在どのような動作を示しているのかを説明し、どのように動作させるかを記述できますか? –

+0

@マークトーマス私は何を目指しているのかを示すために、既存の背景とコピー&ペーストのバージョンと2つの "ファンタジーガーキンシンタックス"を追加しました –

+0

@TimDigginsこれは古い質問ですが、私は好奇心ですガーキンを使って「背景の輪郭」を記述する方法を見つけたかどうかは関係ありませんか? ...誰かが内線番号を思いついたのだろうか? – muhqu

答えて

4

Background: 
    Given I am logged in as an existing supervisee 

    ...same loads of scenarios 

ことはここではいくつかの幻想ガーキン構文(つまり、存在しない)

Background Outline: 
    Given I am logged in as a <user> 

    Backgrounds: 
    | user         | 
    | supervisor with an existing supervisee | 
    | an existing supervisee     | 

    ...loads of scenarios 

また別のファンタジーガーキン構文です複製:

http://dannorth.net/2008/06/30/let-your-examples-flow/

代わりに、両方のユーザーグループに対してシナリオを実行することを示すタグを機能で使用することもできます。次に、Aroundフックを使用してシナリオを各ユーザータイプごとに1回ずつ2回実行します。

前回のバックグラウンドの概要などについて説明しましたが、これを実現するには余分な複雑さを感じることはありませんでした。

+0

私は重複を嫌うのではなく、私がDRYの熱狂者だからではなく、実際には1つの機能であり、それを1つの場所に保つより表現力があるからです。しかし、タギングと周りのフックの使用は非常に表現力があります。完璧、ありがとう! –

+0

本当に機能しますか?ブロックを複数回実行することはできないようです。答えを見る[this](http://stackoverflow.com/a/10876638/158074)。 – rsenna

+0

@rsenna(遅い応答のお詫び) - 私は実際には試みなかったが、重複を残した。私はフックの周りの考えが好きだったが、それはあまりにも仕事だった(そして、それは働いていないように見える終わり)。 –

関連する問題