2011-04-28 101 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')