Огурец и оформление: Teake_user в шагах
-
26-09-2019 - |
Вопрос
Что я что сделать, это использовать (полагаться на) current_user
Метод при определении шагов огурца. Я использую клиренс в моем проекте.
Прежде всего, я пытался использовать sign_in
Но это не сработало (я думаю, что огурец мир не знает о методах клиренса ...).
Так как мне распознавать куки current_user
а также sign_in
/sign_out
методы?
Решение
Ваши функции огурца должны управлять вашим приложением через интерфейс общедоступных пользователей. Что-то типа:
Given /^I am signed in as "([^\"]*)"%/ do |username|
visit 'sign_in'
fill_in 'Username', :with => username
click 'Sign In'
end
Поскольку current_user
Способ недоступен для браузера, вы не должны использовать его в своем SPEC.
Вы можете подделать это на своих шагах, хранив @current_user
на вышеуказанном шаге, а затем предоставляя для него читателя атрибута.
Другие советы
Я не согласен с идеей, что каждый тест на приемки (огурец или иначе) должен осуществлять логику входа в систему. К счастью, если вы согласны, клиренс добавил задняя дверь В тестах, которые позволяют пропустить знак в шагах.
user = create(:user)
visit posts_path(as: user)
Теперь вы можете оставить свои функции, связанные с входами в систему, водительную систему для входа в систему UI в качестве пользователя, и пропустите, что для функций, которые не связаны напрямую для входа в систему.