Задать вопрос
@Dark_Dante

Почему создается только один Mock объект?

Ситуация такая. Для тестирования необходимо несколько 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-объектов одного класса?
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Сложный 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы