0

シナリオ アウトラインでは、2 つ以上のシナリオがある場合、2 つ以上のシナリオの両方に対して機能のすべてのステップが実行されます。

ただし、ステップの1つ、つまりログインステップを1回だけ実行する必要があります。

例えば:

Scenario Outline: Acceptance page has <Application> logo appearing on top
    Given I am signing up in <Application>         #I want to run this step only once
    And I navigate to "Dashboard" page     # I want to run this step only once
    Then I should see "header logo" exist
    And I should see "footer" exist
    And I should expect the following elements to be visible
        | element                    |
        | Legal                      |
        | Privacy                    |
        | Security                   |
        | Cookies                    |

    Examples:
        | Application | 
        | Gmail       | 

上記の機能ファイルでは、アプリケーションに 1 回だけログオンし、残りの手順を確認したいと考えています。

現在、すべての検証ステップで、ログオンが何度も発生します。

ログイン手順を 1 回だけ実行して、ページ上の複数の項目を確認する方法を提案してください。

4

2 に答える 2

0

まず、@ mikejramsey56 は、一般的な手順をシナリオからバックグラウンドに移動することについて正しいです。

次に、Mike が提案したように before フックで一度 Web サイトにログインできますが、ブラウザが何らかの理由でログアウトした場合、適切な場所にいることはできません。テストは独立しているべきです。

第 3 に、Cucumber は、期待されることを示すために必要な複雑さのレベルを示すのに最適な場所です。ステップを 1 つのステップに結合できます。その場合は、コードをステップから引き出して別のメソッドに入れ、ステップからメソッドを呼び出す必要があります。共通のページ コンポーネントの検証など、複数のメソッドを呼び出す 1 つのステップを作成できます。

第 4 に、ヘッダーとフットが存在することを確認することはビヘイビアーを使用しないため、練習していただければ幸いです。ユーザーは、上部の div またはフレームにあるものを見たいと思っていますが、div またはフレームを見たいとは思っていません。

于 2016-04-29T20:25:37.607 に答える
0

共通のステップを抽出し、それらをBackgroundステートメントに配置します。バックグラウンドは各シナリオの前に実行されますが、Before Hooks の後に実行されます。

于 2016-04-29T18:01:41.513 に答える