Ошибка входа в тест с Devise и Cucumber - PullRequest
1 голос
/ 24 января 2011

Я использую Devise для Аутентификации пользователя и у меня есть следующий неудачный сценарий Cucumber:

Scenario: Log in to the system
  Given a user called "test" with a password of "secret"
  And I am not logged in # Just visits /users/sign_out
  When I go to the log in page
  And I fill in "user_username" with "test" 
  And I fill in "user_password" with "secret"
  And I press "Sign in"
  Then I should see "Signed in successfully."

Если я в конце вставляю «Тогда покажи мне страницу», мне показывают страницу спустая форма для входа

Следующий (очень похожий) тест работает:

Scenario: Fail to log in with invalid credentials
  Given a user called "test" with a password of "secret"
  And I am not logged in
  When I go to the log in page
  And I fill in "user_username" with "test" 
  And I fill in "user_password" with "invalid password"
  And I press "Sign in"
  Then I should see "Invalid email or password."

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

Спасибо, Эш

РЕДАКТИРОВАТЬ: Это последнийшаг, который завершается ошибкой с «ожидаемым #has_content? (« успешным входом в систему ».), возвращающим истину, получен ложный» (... хм ... следовало упомянуть об этом раньше!)

Ответы [ 2 ]

1 голос
/ 24 января 2011

Исправлено!Я только что загрузил свой сервер с тестовой средой и воспроизвел проблему.

Я использую ldap_authenticatable с config.ldap_create_user = true.При первом входе в систему создается учетная запись пользователя, если она не существует (чего нет в недавно очищенной тестовой базе данных), однако затем она перенаправляется обратно на страницу входа, а не по корневому маршруту.Последующие входы в систему выполняют ожидаемое поведение.Итак, следующий тест проходит:

Scenario: Log in to the system
  Given a user called "test" with a password of "secret"
  And I am not logged in
  When I go to the log in page
  And I fill in "user_username" with "test" 
  And I fill in "user_password" with "secret"
  And I press "Sign in"
  And I fill in "user_username" with "test" 
  And I fill in "user_password" with "secret"
  And I press "Sign in"
  Then I should see "Signed in successfully."

Огромное спасибо pjammer за резиновый утенок!

1 голос
/ 24 января 2011

это поле идентификатора user_username или оно user_email или что-то еще?

И как выглядит Когда я захожу на страницу входа?ты уверен, что идешь туда?

...