2012-11-21 160 views
0

我正在使用RSpec來測試rails中的控制器行爲。我的期望之一是以下情況:使用RSpec在Rails應用程序中測試登錄流程

  1. 用戶嘗試訪問帶有參數/home?val=123的受保護(需要登錄)網址。
  2. 該用戶被重定向到登錄頁面。
  3. 登錄後,用戶應該被重定向回原始請求的URL和相關的參數。

我使用設計爲我的認證系統(使用omniauth),我建立了推薦的宏登錄用戶 和所有。

我卡上如何測試上述行爲的流了一下:

describe HomeController do 
    context "user is logged out" do 
    it "redirects back to original page after signin" do 
     # user is not signed in - redirected to login page 
     get :index, { :val => '12345' } 
     current_user.should_not be_present 
     expect(response).to redirect_to(login_page_path) 

     # should now login the user and verify 
     # that request.fullpath == '/home?val=12345' 

     # ?... 
    end 
    end 

end 

是否屬於即使在控制器規範?任何幫助或示例/ s將不勝感激。謝謝。

回答

1

Luacassus看起來像他有一個體面的答案,但你看過水豚請求測試?

有上Rails Casts here.

一個真正像樣的教程這基本上是我們用來測試我們的註冊測試。但是,我們不測試omniauth,因此它可能不是您正在尋找的。