【问题标题】:Ruby on Rails - Test UnitRuby on Rails - 测试单元
【发布时间】: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


【解决方案1】:
assert_redirected_to new_user_session_path(:format => 'mobile')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2011-10-02
    • 2022-07-07
    相关资源
    最近更新 更多