Как мне написать этот BDD скрипт? - PullRequest
0 голосов
/ 18 октября 2019

В моем приложении есть кнопка выхода, для которой я хочу написать историю. Он ведет себя следующим образом:

  1. Если в форме, которую я редактирую, заполнен контент, и я нажимаю кнопку «Выход», появится всплывающее сообщение с подтверждением, сообщающее, что есть несохраненный контент, и еслиЯ уверен, что хочу выйти со страницы.
  2. Если в форме, которую я редактирую, нет заполненного контента, и я нажимаю кнопку «Выход», подтверждающее сообщение не будет отображаться, и я сразу же выйду из формы.

То, что я имею до сих пор, выглядит примерно так:

Given as a User on New Profile page
And I fill in the customer name = "Bob"
When I click on the Exit button
And I click on the "Ok" in the confirmation dialog
Then I will be redirected to the landing page.

Мой вопрос о том, что часть на And when I fill in the customer name = "Bob" охватывает только одно из полей. Как написать историю в сжатой форме, чтобы при заполнении или выборе какого-либо из полей (раскрывающихся списков) отобразился диалог подтверждения? Во-вторых, верна ли моя история?

Ответы [ 2 ]

1 голос
/ 21 октября 2019

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

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 не пройден. Условие, которое наступает после «должен» на моем шаге, обычно является ошибкой.

1 голос
/ 18 октября 2019

вы можете использовать datatable на этом конкретном шаге, как показано ниже

Given as a User on New Profile page
And I fill in the customer details
|name|address1|adress2|pincode| //can be accessed with DataTable datatype in SD*
When I click on the Exit button
And I click on the "Ok" in the confirmation dialog
Then I will be redirected to the landing page.

* SD-Stepdefinitions

...