マルチステップのビジネスプロセスの要件を(ウィザードを介して)作成しようとしています。ある画面でのユーザーの操作によって、別の画面でオプションを選択できるかどうかが変わるシナリオはたくさんあります。
たとえば(私は実際のビジネスを覆い隠しましたが、ステップのプロセスと形式はほぼ同じです):
Feature: Personal Diagnostic Search Filter
In order to select a Technician who offers Personal Diagnostics,
when I've asked for a Personal Diagnostic
As a Business Customer
I want to limit my search to Technicians who offer Personal Diagnostics
Background:
Given a Business named "Big Al's Auto Supply"
And a Customer named "Bob Test" at the "Big Al's Auto Supply" Business
And an Account named "bobtest@testbusiness.com" owned by "Bob Test"
And the "bobtest@testbusiness.com" Account has the "Repair Order Creator"
permission
And you log in as "bobtest@testbusiness.com"
And you start scheduling a new Repair Order
Scenario: Enter the Select Technician page when Use PD is selected
Given you select Use PD
When you enter the Select Technician page
Then the PD Filter should be visible
And the PD Filter should be selected
Scenario: Basic Search for Technicians when PD Filter is selected
Given a Technician named "PD Technician"
And the Technician named "PD Technician" supports PD
And a Technician named "Non-PD Technician"
And the Technician named "Non-PD Technician" does not support PD
And you select Use PD
And you enter the Select Technician page
And you select the PD Filter
And you select Basic Search
When you search for Technicians with the name "Technician"
Then your search results should contain "PD Technician"
And your search results should not contain "Non-PD Technician"
ただし、Gherkin wikiでは、次のことをお勧めします。
与えられたものでのユーザーインタラクションについて話すことは避けてください
しかし、彼らは例外を作り続けます:
ユーザーにログインします(対話なしの推奨事項の例外。「以前に発生した」ことは問題ありません)。
また、そのページには次のように書かれています。
Whenステップの目的は、ユーザーが実行する主要なアクションを説明することです
UIインタラクションが多い場合、Givenに属するものと、Whenに属するものは何ですか?
私の最初のシナリオでは、 select Use PD
UIの操作が必要です。これは、新しい修理注文を作成するためのウィザードの一部であるためです。ただし、PDフィルタが表示されるための前提条件であり、ユーザーが[技術者の選択]ページに入るとトリガーされます。
最初のシナリオはそれほど悪くないかもしれませんが、2番目のシナリオは問題を悪化させます。[検索]をクリックすると検索がトリガーされますが、そのページに移動するには、多くのUI操作を実行する必要があります。これらのインタラクションの一部はUse PD
、検索フィルターを表示するために選択する必要があるため、グロスオーバーすることもできません。ただし、これらのUIインタラクションは、シナリオの主要なアクションではありません。