Буду ссылаться на
официальную документацию:
- Функция сreateMock общего назначения, которая мокает объект в соответсвии с лучшими практиками по умолчанию: не вызывается __construct, __clone, __autoload, подменяются все методы. По сути короткий синтаксис для создания мок объектов.
- getMockBuilder в свою очередь реализует паттерн Builder и позволяет явно задать состояние мок объекта
Взгляните на два способа создания одинаковых по поведению мок объектов:
$mock1 = $this->getMock(MyClass::class, [], [], '', true, false, true);
$mock2 = $this->getMockBuilder(MyClass::class)
->disableOriginalClone()
->getMock();
Использование билдера моков проще по визуальному восприятию в некоторых случаях. Я предпочитаю всегда второй способ из-за легкости чтения.