volnistii11
Подскажите пожалуйста, как реализовать метод подставных объектов, если можно то с примером. Или скиньте плс статью, где это рассказывается на примере phpUnit 6.*
don.bidon
В Гугле «phpunit mock», достаточно статей и на русском языке,тот же Хабр. Не ясна любовь к 6-ой версии ))
volnistii11
да везде описывается просто заглушка, а не метод подставных объектов
don.bidon
Так метод подменял:
PHP:
$stub = $this->getMockBuilder(Core::class) ->addMethods([‘getResponse’]) ->setConstructorArgs([self::$config, new Request(‘post’, [‘post’ => $request])]) ->getMock(); $stub ->method(‘getResponse’) ->willReturnCallback(fn () => $this->response); $stub ->method(‘sendResponse’) $this->response = $response; }));
volnistii11
А можете объяснить в чем разница в коде просто заглушки от метода подставных объектов? Я понимаю, что подставной
объект должен при вызове менять свои внутренние свойства, которые затем нужно проверить. Но не понимаю, где видно в коде, что это именно метод подставных объектов? То есть я не понимаю принципиальную разницу именно в коде.
Как я понял, у вас здесь просто реализация заглушки?
Дюран
У мока есть ожидания — методы вроде shouldBeCalled(), expects(), т.е. на моке еще идут проверки того что с ним происходит