模拟 Laravel 的 Config 门面,只为某个键返回一个值
Posted
技术标签:
【中文标题】模拟 Laravel 的 Config 门面,只为某个键返回一个值【英文标题】:Mock Laravel's Config facade to return a value only for a certain key 【发布时间】:2018-04-15 01:13:12 【问题描述】:我想在我的测试中模拟 Config::get('specific_key')
以返回 'specific_value'
。于是我写了如下代码:
Config::shouldReceive('get')
->with('specific_key')
->andReturn('specific_value');
Config::makePartial();
这将起作用:如果我添加dd(Config::get('specific_key'))
,我将收到'specific_value'
。
但是,如果我执行dd(Config::get('another_key'))
,我不会收到任何值(我猜是因为模拟不希望这个键作为参数)。
所以我的问题是:有没有办法模拟 Config 的 get() 方法,只为特定键返回特定值(并从配置文件中为任何其他键返回正常值)?
【问题讨论】:
【参考方案1】:您不必模拟 Config,您可以使用Config::set()
来设置 Config 中的任何值。所以 Config::set('specific_key', 'specific_value');
在测试中而不是创建模拟应该可以工作
【讨论】:
以上是关于模拟 Laravel 的 Config 门面,只为某个键返回一个值的主要内容,如果未能解决你的问题,请参考以下文章