Я писал тест 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»? Я провел некоторое время, играя в отладчике, просматривая методы, прикрепленные к сеансу и пользователю, и ни один из них не показался мне полезным для того, что я здесь хочу.