Огурец же предложение разные сценарии - PullRequest
0 голосов
/ 04 октября 2018

Я работаю с приложением java Spring Boot 2, в котором я использую огурец и корнишон.

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

Учитывая следующее предложение

And the user fills the field email with 'myEmail@email.com'

Проблема в том, что поле "электронная почта" находится на странице регистрации и на странице входа.

Когда я пишу реализациюиз этого предложения, как я могу понять, нужно ли мне заполнять страницу регистрации или страницу входа?

Поиск в Google Я ничего не нашел по этому поводу, может быть, в моем предложении есть какой-то антипаттерн?

Есть ли реальные примеры, чтобы лучше понять?

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Анти-паттерн заключается в том, что вы используете свои возможности / сценарии для описания того, КАК вы делаете что-то, а не для того, чтобы ваши функции / сценарии описывали ЧТО вы делаете и ПОЧЕМУ это важно.Вы можете вставить детали того, КАК вы делаете вещи, в тела определений шагов, или, что еще лучше, в вспомогательные методы, которые могут вызывать определения шагов.

Из вашего примера у вас явно есть два сценария

  • пользователь регистрируется (я предпочитаю использовать здесь 'регистрация')
  • пользователь регистрируется

Итак

Scenario: Sign up
  When I sign up
  Then I should be signed up

Scenario: Sign in
  When I sign in
  Then I should be signed in

И в стеке какой-то вспомогательный метод(у меня в Ruby)

def sign_up(new_user: )
  visit sign_up_page
  fill_in :email, with new_user.email
  fill_in :password, with new_user.password
  fill_in :confirmation, with new_user.password
  ...
  submit_form
end

def sign_in(user: )
  visit sign_in_page
  fill_in :email, with user.email
  fill_in :password, with user.password
  submit_form
end

Работая таким образом, вы четко различаете sign_in и sign_up и не можете использовать неправильное определение шага.

0 голосов
/ 04 октября 2018

Что не так,

And the user fills the field email with 'myEmail@email.com' on the 'signUp' page

And the user fills the field email with 'myEmail@email.com' on the 'signIn' page'

?

...