Ситуация такая. Для тестирования необходимо несколько Mock-объектов одного класса.
Создаем метод:
protected function createBagMock(
?delivery $delivery = null,
?string $barcode = null,
?int $weight = null,
array $products =[]
): Bag {
$bag = $this->getMockBuilder(Bag::class)
->setConstructorArgs([
'pickUpDelivery' => is_null($delivery) ? $this->dliveryMock() : $delivery,
'barcode' => is_null($barcode) ? TestValues::TEST_BARCODE : $barcode,
'weight' => is_null($weight) ? 1000 : $weight,
'products' => empty($products) ? [] : $products,
])->getMock();
return $bag;
}
Вызываем:
dump($this->createBagMock()); //тут Mock_Bag_edb40126
dump($this->createBagMock()); //и тут Mock_Bag_edb40126
dump($this->createBagMock()); //и тут тоже Mock_Bag_edb40126
Во всех случаях нам вернулся один и тот же объект, а мне бы три разных. Такое ощущение что при первом вызове объект создался, а при последующих возвращается ранее созданный mock-object. Как мне получить несколько Mock-объектов одного класса?