2013-10-09 4 views
0

В некоторых моих контроллерах мне нужно использовать группы (группы), принадлежащие зарегистрированному пользователю (current_user.groups). Когда я пытаюсь проверить; Я, кажется, не имеют этого current_user хотя:Использование текущего_выхода Devise в тестовом модуле

ActionView::Template::Error: undefined method `authenticate' for nil:NilClass 

Так что я понял, я должен создать этот CURRENT_USER с Завещания.

Я прочитал документацию Завещания о том, следует добавить следующее к моей test_helper.rb:

class ActionController::TestCase 
    include Devise::TestHelpers 
    def setup 
     @request.env["devise.mapping"] = Devise.mappings[:user] 
     sign_in FactoryGirl.create(:user) 
    end 
end 

Это, кажется, не сделать трюк, хотя; Всякий раз, когда я бегу rake test я получаю следующие ошибки:

1) Error: 
ActivitiesControllerTest#test_should_create_activity: 
NameError: uninitialized constant ActionController::TestCase::FactoryGirl 
    test/test_helper.rb:22:in `setup' 
+0

У вас есть заводской gem, включенный в тестовую группу в Gemfile? – Richard

+0

Я предполагал, что он пришел с драгоценным камнем. Поскольку вся работа входа/регистрации работает как прелесть в моем приложении. – CaptainCarl

+0

Чем мне не нужно это для входа в систему? – CaptainCarl

ответ

3

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

group :development, :test do 
    gem 'factory_girl_rails' 
end 

И затем запустить bundle install.

factory_girl_rails используется при создании прибора пользователя в тесте:

sign_in FactoryGirl.create(:user)

Затем вам нужно создать фабрику (почти как приспособление):

rails generate factory_girl:model user

Создает файл: test/factories/users.rb

R ead подробнее о factory_girl_rails и о том, как определить фабрики здесь: https://github.com/thoughtbot/factory_girl_rails

+0

Это меня выбрасывает: 'PictogramsControllerTest # test_should_update_pictogram: ArgumentError: Factory не зарегистрирован: user test/test_helper.rb: 21: in' setup'' – CaptainCarl

+0

Я обновил свой ответ, я думаю, этого должно быть достаточно. – Richard

+0

Сделал трюк. Благодаря – CaptainCarl

Смежные вопросы