Ruby on Rails: RSpec и Acts As Audited (отключение activ_as_audited во время тестирования?)

Я получаю сообщение об ошибке, которое, я думаю, можно исправить, отключив действие activ_as_audited при запуске тестов или, по крайней мере, добавив переменную current_user в программу проверки аудита. Ошибка ниже. Что ты думаешь я должен сделать?

NoMethodError in 'Order should create a new instance given valid attributes'
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.current_user
/home/ramon/rails/app/vendor/plugins/acts_as_audited/lib/acts_as_audited/audit_sweeper.rb:73:in `send'
/home/ramon/rails/app/vendor/plugins/acts_as_audited/lib/acts_as_audited/audit_sweeper.rb:73:in `current_user'
/home/ramon/rails/app/vendor/plugins/acts_as_audited/lib/acts_as_audited/audit_sweeper.rb:61:in `after_create'
./spec/models/order_spec.rb:13:

В spec/models/order_spec.rb я попытался заглушить AuditSweeper.current_user, template.current_user и controller.current_user, чтобы вернуть ложную модель пользователя. Нет работы.

Любая помощь приветствуется. Спасибо!

1 ответ

Решение

Похоже, что один из объектов, для которого вызывается current_user, равен nil. так что окурки текущего пользователя не будут работать. вам нужно отследить нулевой объект и убедиться, что он инициализирован.

Другие вопросы по тегам