Я работаю над пакетом, который опирается на фасад Config
. Сам код работает нормально, но при тестировании возникают проблемы.
Изначально я использовал этот код:
Config::shouldReceive('foo.bar')
->andReturn(true);
Как и многие другие, я столкнулся с некоторыми проблемами.
Позже я прочитал, что насмешка над Config
фасадом не поощряется.
Чтобы обойти это, большинство людей, как правило, предлагают вместо этого использовать следующее:
Config::set('foo.bar', true);
Что, я считаю, отлично работает, если вы тестируете Laravel/Lumen.
Но моя проблема в том, что я не такой. Я просто полагаюсь на несколько Illuminate
пакетов, так что это не сработает, так как я получаю: RuntimeException: A facade root has not been set.
На этом этапе некоторые могут предложить мне просто внедрить зависимость репозитория Config
, но я использую фасад Config
в трейте, который используется моделью Eloquent
, поэтому DI не будет работать.
Есть ли другой способ справиться с этим?
Спасибо!
PS: этот вопрос также был опубликован на Ларакасты