Учитывая этот класс:
MyClass
{
public function getValueFrom($foo)
{
return 'data';
}
}
Я хочу проверить определенные вызовы функции getValueFrom
с конкретными аргументами:
$mock = Mockery::mock(MyClass);
$mock->shouldReceive('getValueFrom')
->with('foo')
->once()
->andReturn('bar');
(new MyClass)->foo('foo'); // returns bar
(new MyClass)->foo('someting-else'); // throws Mockery\Exception\NoMatchingExpectationException
Если я вызываю тот же метод с аргументами, отличными от 'foo', он генерирует исключение NoMatchingExpectationException. Как делегировать реальному классу не предусмотренные сценарии? Предполагаемое поведение:
$mock = Mockery::mock(MyClass);
$mock->shouldReceive('getValueFrom')
->with('foo')
->once()
->andReturn('bar');
(new MyClass)->foo('foo'); // returns bar
(new MyClass)->foo('someting-else'); // return data
(new MyClass)->foo('anything-else'); // return data