【发布时间】:2017-07-01 15:29:39
【问题描述】:
我正在开发一个依赖于Config 外观的包。
代码本身运行良好,但我在测试时遇到了问题。
最初,我使用的是以下代码:
Config::shouldReceive('foo.bar')
->andReturn(true);
和others一样多,我遇到了一些问题。
我后来读到了嘲笑Config门面isn't encouraged。
为了解决这个问题,大多数人倾向于建议改用以下方法:
Config::set('foo.bar', true);
如果您从 Laravel/Lumen 进行测试,我认为这可以正常工作。
但我的问题是,我不是。我只依赖一些Illuminate 包,所以这不起作用,因为我得到:
RuntimeException: A facade root has not been set.
此时,有些人可能会建议我只注入 Config 存储库依赖项,但我在 Eloquent 模型使用的特征中使用 Config 外观,因此 DI 不会工作。
我还有其他方法可以解决这个问题吗?
谢谢!
PS:这个问题也已经发到Laracasts
【问题讨论】:
标签: testing laravel-5 phpunit mockery laravel-facade