我正在开发一个依赖于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:这个问题也已经发布在Laracasts上