Вопрос

Что я что сделать, это использовать (полагаться на) 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 в качестве пользователя, и пропустите, что для функций, которые не связаны напрямую для входа в систему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top