Как отстаивать форму подачи работ с капибарой и минитестом? - PullRequest
0 голосов
/ 06 ноября 2019

Мне нужно проверить, что форма успешно отправлена, и пользователь перенаправляется на соответствующую страницу.

Каков наилучший способ сделать это? В файле readme из Капибары предлагается что-то вроде следующего:

click_button 'Sign in'
assert_text 'Success'

Но я нахожу это ненадежным, а иногда и двусмысленным. Есть ли способ сделать что-то вроде следующего?

assert_redirects_to after_sign_in_path do
  click_button 'Sign in'
end

1 Ответ

1 голос
/ 07 ноября 2019

Это будет

click_button 'Sign in'
assert_current_path after_sign_in_path

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

assert_text "You've logged in"

вы, по крайней мере, утверждаете что-то релевантное пользователю (очевидно, текст зависит от того, что показывает ваше приложение). Если это «ненадежно», то вам нужно выяснить, почему это ненадежно - если ваша страница иногда требует больше времени для входа в систему, то укажите расширенное максимальное время ожидания для этого утверждения

assert_text "You've logged in", wait: 10

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...