2012-11-06 30 views
2

除非是管理員,否則不允許用戶查看用戶頁面。因此,如果用戶沒有登錄,用戶不能離開主頁。在user_controller_spec中,我們有幾個關於編輯個人信息或密碼的測試。但是測試永遠不會通過,因爲我們在spec類中創建的用戶沒有登錄。是否有方法在user_controller_spec中登錄用戶?如何以user_controller_spec中的用戶身份登錄?

回答

0

如果您使用設計進行身份驗證,它提供了一個輔助方法:sign_in

所以,你可以做這樣的事情:

it "should do something" do 
    sign_in(user) # user is an object of your User model 
    #Continue testing 
end 

更多信息請參見this documentation

+0

我正在使用會話。我不知道如何使用Devise。我可以沒有它嗎? – Newcastle

+0

你可以使用'session [:key]'在一個spec中設置你的會話。您可以編寫自己的幫助方法'sign_in(user)',它可以設置用戶登錄的會話。當您希望用戶登錄時,您可以在規範中使用此方法。 – Emil

相關問題