Вы можете использовать схему сценария в сочетании с параметризацией шага, заполняющего поле фиктивным значением.
Scenario Outline: The user is taken to the landing page after exiting new user profile
Given I am registering as a new user
And I have filled in the "<Profile Field>" field
And I have chosen to exit the current page
When I confirm I want to abandon my unsaved changes
Then I should be redirected to the landing page
Examples:
| Profile Field |
| Name |
| Phone Number |
| ... |
Вы не опубликовали заголовок сценария, который так же важен, как иФормулировка для каждого шага, поэтому я сделал на up. Важно сосредоточиться на поведении:
Краткое описание сценария: пользователь попадает на целевую страницу после выхода из нового профиля пользователя
Шаг Given I am registering as a new user
долженперейдите на страницу нового профиля пользователя.
Шаг Given I have filled in the "<Profile Field>" field
должен принимать аргумент, в котором вы называете поле, которое вы хотите заполнить. Определение для этого шага должно заполнять поле фиктивной информацией или выбирать вслепую. параметр в раскрывающемся списке.
На шаге Given I have chosen to exit the current page
следует нажать кнопку выхода. Обратите внимание, что нет упоминания о «щелчке» по чему-либо. Вы должны избегать в своих действиях языка, похожего на инструкции по использованию пользовательского интерфейса, и вместо этого сосредоточиться на поведении приложения, используя бизнес-термины.
То же самое для When I confirm I want to abandon my unsaved changes
. Здесь не упоминается нажатие на что-либо. Он просто фокусируется на поведении (решив отказаться от ваших изменений). Определение шага должно знать, как нажать кнопку «ОК» в диалоговом окне подтверждения. Тот факт, что диалоговое окно подтверждения существует, должен быть известен только по определению шага.
Наконец, Then I should be redirected to the landing page
делает ваше утверждение о том, где находится пользователь. Мне нравится включать слово «должен» в мои Then
шаги. Если вам будет легче определить сбой теста, если шаг Then
не пройден. Условие, которое наступает после «должен» на моем шаге, обычно является ошибкой.