phpunit Ошибка Method name matcher is not defined, cannot define parameter matcher without one

При запуске Unit теста возникает ошибка:

Method name matcher is not defined, cannot define parameter matcher without one

Решение

Проблема оказалась в том, что был нарушен порядок вызова методов при работе с моком. Метод with() должен идти ПОСЛЕ метода method(), т.к. иначе phpunit не понимает, к какому методу относится аргумент, передаваемый with-ом.
Правильный порядок методов:

$saleRepository->expects($this->once())
            ->method('getById')
            ->with($saleId)
            ->willReturn($sale);

Источники