Огурец, капибара, рельсы 3, 302 - проблема с перенаправлением - PullRequest
2 голосов
/ 07 мая 2011

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

visit login_path
fill_in 'Email', :with => 'test@example.com'
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"=>"test@example.com"}, "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.

1 Ответ

1 голос
/ 10 мая 2011

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

...