тесты не проходят, потому что пользователь не аутентифицирован

Я использую предварительный фильтр: Authenticate_user! на моих страницах. У меня есть тесты на огурцы, которые проверяют поведение на этих страницах, теперь они не работают, потому что у меня нет аутентифицированного пользователя. Каков самый простой способ пройти эти тесты? разве что необходимости каждый раз создавать пользователя и регистрировать его? есть способ? Я проверил, что страница недоступна, если пользователь не вошел в систему, я не хочу проверять это каждый раз, когда добавляю тест для страницы

используя рельсы 3, изобретатель 1.2, огурец


person newbie_86    schedule 12.04.2011    source источник


Ответы (1)


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

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

Given a valid user is logged in
When ...

В Интернете есть гораздо больше информации об использовании огурца таким образом, но если вам нужен простой пример, я нашел его в ответе на этот вопрос.

person Brett Bender    schedule 12.04.2011
comment
@ Brett Bender - не могли бы вы создать нового пользователя и войти в систему на шаге «При условии, что в систему вошел действительный пользователь»? - person newbie_86; 13.04.2011
comment
Чего я пытаюсь избежать, так это создания пользователя снова и снова. в идеале я хотел бы создать его один раз, а затем использовать одного и того же пользователя во всех тестах, возможно ли это с огурцом? - person newbie_86; 13.04.2011
comment
Скорее всего, вы захотите пометить свои тесты, которые требуют присутствия пользователя в базе данных, и использовать обработчик before, чтобы убедиться, что пользователь создан перед запуском теста. См. Вики-страницу о хуках: github.com/aslakhellesoy/cucumber/wiki/Hooks - person Brett Bender; 13.04.2011