2011-04-28 92 views
0

我有一个测试:Ruby on Rails的 - 测试单位

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" 

,但没有成功,同样的情况下,失败消息,如果客户端是移动设备和重定向发生移动视图。

有什么想法?

+0

我真的不明白你在问什么。如果你能提供更清晰的格式和更多的信息,我可能会提供帮助。 – Mario 2011-04-28 22:14:35

+0

对不起我的英文,我添加了一些更多的细节,希望它有道理。 – paxer 2011-04-28 23:39:43

回答

1
assert_redirected_to new_user_session_path(:format => 'mobile')