Как написать тест rspec в Rails 3, чтобы проверить, подписан ли пользователь с authlogic после создания? - PullRequest
3 голосов
/ 16 марта 2011

Я портирую свое приложение с пользовательского механизма аутентификации на authlogic, и у меня возникают проблемы с выяснением, как проверить, что новый пользователь вошел в систему после его создания.Мой старый тест был следующим:

describe UsersController do
.
.
.
before(:each) do
  activate_authlogic
  @attr = { :username => "New User", :email => "user@example.com",
    :password => "foobar", :password_confirmation => "foobar" }
end
.
.
.
 it "should sign the user in" do
    post :create, :user => @attr
    controller.should be_signed_in
 end

где signature_in?определен в app / helpers / user_sessions_helper.rb и включен в контроллер приложения:

# check for a signed in user. returns true if current_user is not nil.        
def signed_in?
  !current_user.nil?
end

Я ожидаю, что этот тест пройдёт, но signature_in?возвращает ложьЕсть идеи?Я предполагаю, что мне следует спрашивать UserSession, если: пользователь вошел в систему, но я не уверен, как authlogic позволяет мне это делать.

Будем весьма благодарны за любые подсказки, советы или рекомендации.

1 Ответ

0 голосов
/ 16 марта 2011

Мне удалось написать тест, который проходит - теперь я просто должен выяснить, правильна ли логика в тесте:)

it "should sign the user in" do
    post :create, :user => @attr
    @user_session = UserSession.find
    @user_session.user.should_not == nil
end

По крайней мере, это проверяет, что пользователь вошел в систему, но это не показывает, что только что созданный пользователь вошел в систему. Я думаю, что нужно немного больше работы.

...