2
我正在爲會話控制器(Authlogic 2.1.6)的銷燬操作寫一個rspec測試。我無法弄清楚我應該調用什麼方法,無論是在用戶對象還是會話對象上,以確定會話是否仍然「活着」(即用戶已登錄或未登錄)。如何在使用Authlogic時測試註銷/註銷(UserSessionsController銷燬操作)?
我的第一本能是使用@ user.logged_in?但我知道這樣做是行不通的,因爲logged_in根據會話超時而不是會話對象的狀態做出決定。
下面是我寫的代碼不起作用的代碼,因爲be_logged_in在兩種情況下均返回true。
describe "for logged in user" do
it "should logout the user" do
activate_authlogic
@user = Factory.create(:valid_user)
@session = UserSession.create(@user)
@user.should be_logged_in
delete :destroy
@user.should_not be_logged_in
response.should redirect_to(root_path)
end
end
end
應該用什麼來代替'be_logged_in'?我花了一些時間在調試器中查看附加到會話和用戶的方法,並且他們沒有一個在我身上跳出來,因爲這對我在這裏想要的是有用的。
謝謝,zetetic。那就是訣竅。 – Iain 2010-11-01 01:30:02