Как проверить выход из системы (действие по уничтожению UserSessionsController) при использовании Authlogic? - PullRequest
2 голосов
/ 31 октября 2010

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

1 Ответ

2 голосов
/ 31 октября 2010

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

...