Непрерывный бросок: смотритель в Devise Testing
Я только что начал с тестирования Devise. Я не могу понять, почему я получаю эту ошибку::
Failure/Error: subject.current_user.should_not be_nil
ArgumentError:
uncaught throw :warden
Это код в моей спецификации::
require "spec_helper"
describe Devise::PasswordsController do
include Devise::TestHelpers
before(:each) do
user = Factory(:user)
@request.env["devise.mapping"] = Devise.mappings[:user]
sign_in user
end
it "should have a current user" do
subject.current_user.should_not be_nil
end
end
Кто-нибудь получил исправление по этой проблеме? Я знаю, что есть проблемы на github
, но в их случае include Devise::TestHelpers
не было, в отличие от моего случая.
Я получаю сообщение об ошибке в этой строке: subject.current_user.should_not be_nil
Ответы
Ответ 1
Я вижу, что это очень старый вопрос, но я столкнулся с подобной проблемой. Это помогло мне.
Если вы используете модуль confirmable
, не забудьте подтвердить пользователя, иначе будет выбрано исключение Warden. Соответствующее изменение вашего кода будет:
before(:each) do
user = Factory(:user)
user.confirmed_at = Time.zone.now
user.save
@request.env["devise.mapping"] = Devise.mappings[:user]
sign_in user
end
Более подробную информацию можно найти в Разработать Wiki
Ответ 2
uncaught throw :warden
происходит, когда authenticate_user!
терпит неудачу.
Укажите, почему ваша аутентификация пользователя является неудачной, и вы решите свою проблему.