我有一个类,我嘲笑get
方法时调用test1
返回123
。这工作正常。嘲笑只对某个参数
但是,我希望所有其他调用get
方法返回通常会返回的内容 - 即只有具有特定参数的调用返回模拟响应。
$configMock = m::mock(Config::class);
$configMock->shouldReceive('get')
->with('test1')
->andReturn(123);
所以,如果我打电话与代码中不同的参数得到即$config->get('test2')
我得到的错误
嘲弄\异常\ NoMatchingExpectationException:不匹配的处理器找到Mockery_1_Illuminate_Contracts_Config_Repository ::获得(“测试2” )。无论哪种方法是意外或它的参数此方法匹配没有预期的参数列表
然而,当我在第一行使用->makePartial()
,在该行$config->get('test2')
我得到的错误
BadMethodCallException:方法Mockery_1_Illuminate_Contracts_Config_Repository :: get()在这个模拟对象上不存在
如何在只允许某个参数传递方法响应的同时让该方法返回瓮对该方法的所有其他调用的正常响应?
谢谢,但我不想嘲笑此方法的每一个反应,当达到一定参数传递只有一个。 – myol
那么如果你有参数并且在正常情况下调用它,那么模拟该方法呢? – Loek
是的,这有可能使用嘲弄吗?我几乎可以肯定,我已经使用PHPUnit – myol