Как обойти повторное выполнение шага в файлах объектов огурца?
В набросках сценариев, если существует 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 или фрейм.
Извлеките общие шаги и поместите их в справочный оператор. Фон запускается перед каждым из ваших сценариев, но после любого из ваших предварительных зацепок.