【发布时间】:2017-05-23 20:58:20
【问题描述】:
我有一个类,当使用test1 调用以返回123 时,我正在模拟get 方法。这工作正常。
但是,我希望对 get 方法的所有其他调用返回通常返回的内容 - 即只有具有特定参数的调用返回模拟响应。
$configMock = m::mock(Config::class);
$configMock->shouldReceive('get')
->with('test1')
->andReturn(123);
因此,如果我在代码中使用不同的参数调用 get,即 $config->get('test2'),我会收到错误
Mockery\Exception\NoMatchingExpectationException:没有为 Mockery_1_Illuminate_Contracts_Config_Repository::get("test2") 找到匹配的处理程序。该方法是意外的,或者它的参数与该方法的预期参数列表不匹配
但是,当我在第一行使用->makePartial() 时,在$config->get('test2') 行出现错误
BadMethodCallException:此模拟对象上不存在方法 Mockery_1_Illuminate_Contracts_Config_Repository::get()
我怎样才能模拟一个方法响应,只传递一个特定的参数,同时让该方法返回对该方法的所有其他调用的正常响应?
【问题讨论】: