【发布时间】:2011-04-29 09:22:40
【问题描述】:
我有一个测试:
test "should not allow access" do
get :new
assert_redirected_to new_user_session_url
end
我使用设备进行身份验证。
我的每个操作都有两个视图:一个正常视图,一个用于移动设备,所以在我使用通常的默认视图 (sign_in.html.erb) 之前 - 测试通过了,但是当我添加了一个移动视图 (sign_in.mobile.erb) 我收到下一条失败消息。
预期的响应是重定向到http://test.host/users/sign_in,但实际上是重定向到http://test.host/users/sign_in.mobile
所以从客户端测试的角度来看 - 逻辑工作正常,例如如果用户未通过身份验证,他将被重定向到会话新路径(new_user_session_url)。这也适用于移动设备(移动客户端将被重定向到登录页面的移动视图),但如果客户端是移动设备并且我的控制器重定向到移动视图,则由于某些原因测试失败。
我的问题是如何修复测试?我试过了:
assert_redirected_to new_user_session_path
assert_redirected_to :controller => "devise/session", :action => "new"
但如果客户端是移动设备并且重定向发生在移动视图上,则没有成功和相同的失败消息。
有什么想法吗?
【问题讨论】:
-
我不太明白你在问什么。如果您能提供更清晰的格式和更多信息,我可能会提供帮助。
-
对不起我的英语,我添加了更多细节,希望它有意义。
标签: ruby-on-rails