我是水豚的新手,但我正在尝试使用它来测试(用黄瓜)我正在从轨道 2 转换为轨道 3 的应用程序。 但是,我在测试登录时遇到奇怪的行为。 我有一个黄瓜登录步骤,可以执行以下操作:
visit login_path
fill_in 'Email', :with => 'test@example.com'
fill_in 'Password', :with => 'XXXXXXXXX'
click_button 'Log in'
当此自定义步骤运行时,黄瓜会给我以下错误:
找不到用户会话控制器
的操作"索引" 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???
为什么/user_sessions 的 POST 也被重定向到自身(这会导致我看到的错误)???
在开发中一切正常,我没有看到 302 状态代码。 这可能是一些简单的事情,但我看不到它。
编辑:提交此内容 5 分钟后,我意识到这是导致重定向的SSL_requirement插件。 当我注释掉"ssl_required"时,测试通过。 我将不得不对水豚进行更多研究,以找出如何配置它,除非有人提出答案。
编辑答案(因为它不会让我在 8 小时内发布一个):我找到了答案。 正如我在编辑中所说,问题是由于SSL要求而导致的重定向。 可以在此处找到对问题的很好的描述:https://github.com/jnicklas/capybara/issues/85。 当前的解决方案是一个对我有用的补丁,可以在这里找到:https://gist.github.com/466411。
我找到了答案。正如我在编辑中所说,问题是由于SSL要求而导致的重定向。可以在此处找到对问题的很好的描述:https://github.com/jnicklas/capybara/issues/85。当前的解决方案是一个对我有用的补丁,可以在这里找到:https://gist.github.com/466411。