Mock Laravel的Config facade只返回某个键的值

时间:2017-11-02 13:28:28

标签: php laravel testing mockery

我想模仿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 个答案:

答案 0 :(得分:3)

您不必模拟Config,您可以使用Config::set()在Config中设置任何值。因此,测试Config::set('specific_key', 'specific_value');而非创建模拟应该可以正常工作