Для модульного теста я создаю фиктивный объект через:
$passenger = M::mock(PassengerInterface::class);
Я передаю этот макет в службу, которую я хочу провести модульное тестирование. Эта служба пытается получить доступ к методу, который не определен и, следовательно, завершился с ошибкой, как и ожидалось, через:
[BadMethodCallException] Method Mockery_3_Dreamlines_BookingService_Bundle_Bundle_Entity_PassengerInterface::isInfant() does not exist on this mock object
Таким образом, я определил метод для фиктивного объекта через
$passenger = M::mock(PassengerInterface::class)->shouldReceive('isInfant')->andReturn(false);
Тем не менее, это неожиданно не проходит тест через:
[PHPUnit_Framework_Exception] Argument 2 passed to Dreamlines\BookingService\Bundle\Bundle\Operator\ResponseModifier\InfantPriceModifier::adjustPrice()
must implement interface Dreamlines\BookingService\OperatorBundle\Entity\PassengerInterface,
Mockery\CompositeExpectation given
Что я делаю не так?