У меня есть метод со следующей строкой:Заблокировать вызов Rails.application.config_for с помощью Rspec?
permissions = Rails.application.config_for(:admin_auth)
Она считывает файл config/admin_auth.yml
и возвращает хэш, который я использую позже в тот же метод.
Проблема в том, что для тестирования этого метода мне нужно указать разные значения permissions
, но я не могу найти способ заглушить вызов Rails.application.config_for
.
Я пробовал:
allow(Rails::Application).to receive(:config_for) { { admin: 'super_admin' } }
Но я получаю сообщение об ошибке.
Это выглядит как хорошее решение. Проблема в том, что мой объект является вспомогательным модулем под названием Admins :: AuthHelper и 'allow (Admins :: AuthHelper) .to receive (: permissions) .and_return ({admin: 'super_admin'})', похоже, не работает. – Daniel
Если это вспомогательный метод представления, вы можете попробовать 'allow (helper) .to получать (: permissions) .and_return ({admin: 'super_admin'})' –