Как обойти повторное выполнение шага в файлах объектов огурца?

В набросках сценариев, если существует 2 или более сценариев, тогда все этапы функции будут выполнены для обоих из 2 дополнительных сценариев.

Но мне нужно выполнить один из шагов только один раз, то есть шаг входа в систему.

Например:

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       | 

В приведенном выше файле функций, я хочу войти в приложение только один раз и проверить остальные шаги.

В настоящее время для каждого шага проверки, вход в систему происходит снова и снова.

Пожалуйста, предложите, как я могу выполнить шаг входа в систему только один раз и могу проверить несколько элементов на странице.

2 ответа

Во-первых, @mikejramsey56 прав насчет перемещения общих шагов от сценариев к фону.

Во-вторых, вы можете войти на веб-сайт один раз в хуке before, как предложил Майк, но вы не окажетесь в хорошем месте, если браузер по какой-либо причине выйдет из вас. Тесты должны быть независимыми.

В-третьих, Cucumber - отличное место, чтобы показать уровень сложности, который вам нужен, чтобы показать, что ожидается. Вы можете объединить шаги в один шаг. Если вы сделаете это, вы должны вытащить код из шага и поместить его в отдельный метод, а затем вызвать метод из шага. У вас может быть один шаг, который вызывает несколько методов, таких как проверка общих компонентов страницы.

В-четвертых, я надеюсь, что вы тренируетесь, потому что проверка наличия заголовка и стопы не использует поведение. Пользователи хотят делать вещи и видеть вещи, которые могут быть в виде div или фрейма вверху, но они никогда не хотят видеть div или фрейм.

Извлеките общие шаги и поместите их в справочный оператор. Фон запускается перед каждым из ваших сценариев, но после любого из ваших предварительных зацепок.

Другие вопросы по тегам