次のシナリオがあります。
Scenario: Create a game with valid information
Given I am logged in
When I visit the new game page
And I fill in "Game type" with "Basketball"
And I fill in "Zip code" with "94040"
And I fill in "Description" with "Friendly match"
And I click on the button "Create Game"
Then I should see "Awesome! Your game has been created."
Scenario: Create a game with missing information
Given I am logged in
When I visit the new game page
And I fill in "Zip code" with "94040"
And I fill in "Description" with "Friendly match"
And I click on the button "Create Game"
Then I should see "Game type can't be blank."
ご覧のとおり、コードを繰り返していますが、開発者の観点からは、両方のシナリオでいくつかの文を繰り返しているのが嫌いです。ただし、シナリオは独立して明確にする必要があると想定しているため、関係者は誰でも見て、言うことができます..ああ、このシナリオが何を説明しているかはわかっています。
フォームの検証がさまざまな種類のフィールド値に対して正しく機能しているかどうかをテストしようとしています。したがって、基本的に「塗りつぶし」部分を変更する同様のシナリオがたくさんあります。したがって、別の同様の/関連するシナリオは、郵便番号が数値でなければならないことを確認するシナリオです。
Scenario: Create a game with invalid zip code
Given I am logged in
When I visit the new game page
And I fill in "Game type" with "Basketball"
And I fill in "Zip code" with "ffff"
And I fill in "Description" with "Friendly match"
And I click on the button "Create Game"
Then I should see "Zip code has to contain 5 digits."
だから、私の質問は、これを行うためのDRYでビジネスマンに優しい方法はありますか? つまり、コードの最適化と明確でわかりやすい独立したシナリオ定義のバランスですか?