Как проверить выход из системы/выход из системы (действие уничтожения UserSessionsController) при использовании Authlogic?

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


person Iain    schedule 31.10.2010    source источник


Ответы (1)


Как насчет UserSession.find.should be_nil

person zetetic    schedule 31.10.2010