Gherkinテストの構文
Gherkinテストを作成する際には、特定の構造と構文を使用して、Gherkinの規則に従います。
注: 編集時に、構文または論理的エラーがある行の隣にXの文字が赤で表示されます。
フィーチャーセクション
フィーチャーはGherkinテストの目的と目標を定義します。
-
フィーチャー行は次のキーワードから始まります: Feature:
-
フィーチャーには、任意の数のシナリオが含まれます。
-
最初のシナリオの前には、任意のテキストを入力します。テキストでは、関連するユーザー、フィーチャーの説明、およびそのユーザーにとっての重要性について記述します。
例:
Feature: Refund an item.
販売員は客が購入した商品に対して返金できる必要があります。
これは法律で義務付けられていると同時に、顧客の満足度を維持するためにも不可欠です。
Feature: Buying items in shopping cart, single user.
バックグラウンドセクション
各シナリオの前にバックグラウンドを実行します。バックグラウンドは、フィーチャー内のすべてのシナリオに対する1つの設定セットまたは1つのコンテキストを定義します。
-
バックグラウンドセクションは次のキーワードから始まります: Background:
-
Backgroundにはステップを含めることができます (Given、When、およびThen)。
例:
Background:
Given: payment security system is up
シナリオセクション
シナリオは、ユーザーの操作とアプリケーションの反応ついて記述します。
-
シナリオ行は次のキーワードから始まります: Scenario:
-
フィーチャーには多数のシナリオを含めることができます。
-
すべてのシナリオにはステップが含まれています。これらはGherkin構文では注釈と呼ばれます。これらのステップにより、テスト実行に必要な動作の内容を確認できます。それぞれのシナリオには、各タイプの多数のステップが含まれることがあります。
-
ステップは、Given、When、Thenから始まります。各シナリオには複数のステップが含まれることがあります。
Givenステートメント Givenステップは前提条件です。
Whenステートメント Whenステップは、ユーザーが実行しているアクションを記述します。
Thenステートメント Thenステップは、実行されるアクションの期待される結果を記述します。
例:
Scenario: Julio buys items in his cart
Given a customer named "Julio Brown"
Given I am logged in as Julio
Given I have at least one item in cart
When I try to buy items in my cart
Then I should be asked for my payment method
シナリオアウトライン
シナリオアウトラインは、Examplesセクションの各行に対して1回ずつ実行されます。シナリオアウトラインを使用して、Gherkinテストをパラメーター化することができます。
-
シナリオと同様、シナリオアウトラインには、Given、When、Thenステップが含まれるのが普通です。
-
Given、When、Thenステップにはプレースホルダー (変数) が含まれ、<記号と>記号の間に名前が記述されます。
-
Examples:セクションには、シナリオアウトラインが実行されるときに使用されるプレースホルダーの値が含まれます。
例:
Scenario Outline: Many users buy items in their carts.
Given a customer named "<customer>"
Given I am logged in as "<customer>"
Given I have at least one item in cart
When I try to buy items in my cart
Then I confirm my payment method "<payment>" and proceed to checkout
例:
| customer | payment |
| Jane Doe | Paypal |
| Jorge Rodriguez | VISA |
| Sally Dunn | VISA |
| Pierre Bisset | American Express |
| Masayoshi Horita | Cash |