Cucumber, Capybara, Rails 3, 302 Обнаружена проблема перенаправления

Я новичок в капибаре, но я пытаюсь использовать его для тестирования (с огурцом) приложения, которое я конвертирую с рельсов 2 на рельсы 3. Однако я получаю странное поведение при тестировании входа в систему. У меня есть шаг входа в систему с огурцом, который делает следующее:

visit login_path
fill_in 'Email', :with => '[email protected]'
fill_in 'Password', :with => 'XXXXXXXXX'
click_button 'Log in'

Когда этот пользовательский шаг запускается, огурец дает мне следующую ошибку:

Не удалось найти действие index для UserSessionsController
AbstractController::ActionNotFound)

И журнал выводит следующее:

Started GET "/login" for 127.0.0.1 at Fri May 06 15:48:42 -0400 2011
Processing by UserSessionsController#new as HTML
Redirected to https://www.example.com/login
Completed 302 Found in 1ms

Started GET "/login" for 127.0.0.1 at Fri May 06 15:48:42 -0400 2011
Processing by UserSessionsController#new as HTML
Rendered user_sessions/new.html.erb within layouts/promo (15.8ms)
Completed 200 OK in 38ms (Views: 24.5ms | ActiveRecord: 2.9ms)

Started POST "/user_sessions" for 127.0.0.1 at Fri May 06 15:48:42 -0400 2011
Processing by UserSessionsController#create as HTML
Parameters: {"commit"=>"Log in", "user_session"=>{"password"=>"[FILTERED]", "email"=>"[email protected]"}, "utf8"=>"✓"}
Redirected to https://www.example.com/user_sessions
Completed 302 Found in 1ms

Started GET "/user_sessions" for 127.0.0.1 at Fri May 06 15:48:42 -0400 2011 
SQL (0.6ms)  ROLLBACK

Итак, вот мои вопросы:
Почему /login GET, а затем перенаправляется на /login???
Почему POST на /user_sessions также перенаправляется на себя (что вызывает ошибку, которую я вижу) ???

Все отлично работает в разработке, и я не вижу кодов состояния 302. Это может быть что-то простое, но я этого не вижу.

РЕДАКТИРОВАТЬ: через 5 минут после отправки я понял, что это был плагин SSL_requirement, вызывающий перенаправления. Когда я комментирую «ssl_required», тесты проходят. Мне придется провести дополнительные исследования Capybara, чтобы узнать, как его настроить, если кто-то не придумает ответ.

РЕДАКТИРОВАТЬ ОТВЕТ (поскольку он не позволит мне опубликовать его в течение 8 часов): я нашел ответ. Как я уже говорил в своем редактировании, проблема заключается в перенаправлении из-за требования SSL. Очень хорошее описание проблемы можно найти здесь: https://github.com/jnicklas/capybara/issues/85. Текущее решение — это исправление, которое сработало для меня. Его можно найти здесь: https://gist.github.com/466411. .


person Creston    schedule 06.05.2011    source источник


Ответы (1)


Я нашел ответ. Как я уже говорил в своем редактировании, проблема заключается в перенаправлении из-за требования SSL. Очень хорошее описание проблемы можно найти здесь: https://github.com/jnicklas/capybara/issues/85. Текущее решение — это исправление, которое сработало для меня. Его можно найти здесь: https://gist.github.com/466411. .

person Creston    schedule 10.05.2011