きゅうりで正常に動作する機能(.featureファイル)があります。
この機能のすべてのシナリオの背景には、ユーザーを設定してから、スーパーバイザーとしてログインするだけです。
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
...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
あるいは、別のファンタジーガーキン構文:
Background:
Given I am logged in as an existing supervisee
Include Scenarios:
supervisor.features
それが私だったら、私はただ重複を吸い上げるでしょう:
http://dannorth.net/2008/06/30/let-your-examples-flow/
別の方法は、両方のユーザーグループに対してシナリオを実行することを示すタグを機能に使用することです。次に、Aroundフックを使用して、シナリオを2回、ユーザーのタイプごとに1回実行します。
以前に背景のアウトラインなどについて話しましたが、私たちが得た結論は、それを実装するために余分な複雑さを加える価値はないということでした。