Я писал тест rspec для действия уничтожения моего контроллера сессий (Authlogic 2.1.6).Я не могу понять, какой метод мне следует вызывать, либо для объекта пользователя, либо для объекта сеанса, чтобы определить, является ли сеанс все еще «живым» (то есть, пользователь вошел или не вошел в систему).
Моим первым инстинктом было использовать @ 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'?Я провел некоторое время, играя в отладчике, глядя на методы, прикрепленные к сеансу и пользователю, и ни один из них не бросился на меня как полезный для того, что я хочу здесь.