gpt4 book ai didi

testing - 没有 Laravel 的模拟 Illuminate Config facade

转载 作者:行者123 更新时间:2023-11-28 20:38:49 25 4
gpt4 key购买 nike

我正在开发一个依赖于 Config facade 的包。代码本身工作正常,但我在测试时遇到了问题。

最初,我使用的是这段代码:

Config::shouldReceive('foo.bar')
->andReturn(true);

尽可能多others ,我遇到了一些问题。

我后来读到模拟 Config 门面 isn't encouraged .

为了解决这个问题,大多数人倾向于建议改用以下内容:

Config::set('foo.bar', true);

如果您从 Laravel/Lumen 进行测试,我认为它工作正常。

但我的问题是,我不是。我只依赖于一些 Illuminate 包,所以这不会起作用,因为我得到:RuntimeException:尚未设置外观根。

在这一点上,有些人可能会建议我应该只注入(inject) Config 存储库依赖项,但我在一个特征中使用了 Config facade Eloquent 模型,因此 DI 将不起作用。

还有其他方法可以解决这个问题吗?

谢谢!

PS:这个问题也发布在Laracasts

最佳答案

我遇到了同样的问题。流明 5.4使用 Config::set('key', 'value') 无效。所以我不得不使用这种方式。

//test
use Illuminate\Support\Facades\Config;

Config::shouldReceive('get')
->once()
->with('key')
->andReturn('value');

,

//code
use Illuminate\Support\Facades\Config;

Config::get('key'); //instead config('key');

关于testing - 没有 Laravel 的模拟 Illuminate Config facade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42207563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com