25

きゅうりで正常に動作する機能(.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
4

1 に答える 1

6

もしそれが私だったら、私はただ重複を吸うでしょう:

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

別の方法として、両方のユーザー グループに対してシナリオを実行することを示すタグを機能で使用することもできます。次に、Around フックを使用してシナリオを 2 回 (ユーザーの種類ごとに 1 回) 実行します。

バックグラウンド アウトラインのようなものについては以前に話しましたが、これを実装するために余分な複雑さを加える価値はないという結論に達しました。

于 2012-11-09T14:23:38.987 に答える