@nicolette.stoltenberg
Для создания мок-объектов в PHPUnit можно использовать класс PHPUnitFrameworkMockObjectMockBuilder
.
Пример использования:
1
|
$mockBuilder = $this->getMockBuilder(ClassName::class); |
1 2 |
$mockBuilder->setMethods(['methodName1', 'methodName2']) ->setConstructorArgs([$arg1, $arg2]); |
1
|
$mockObject = $mockBuilder->getMock(); |
Теперь у вас есть мок-объект, который можно использовать в своих тестах. Вы можете настроить его поведение с помощью методов, таких как expects
, willReturn
, willThrowException
и т. д.
Пример настройки мок-объекта с ожиданием вызова метода и возвращением значения:
1 2 3 |
$mockObject->expects($this->once()) ->method('methodName1') ->willReturn($expectedValue); |
Обратите внимание, что для использования методов мок-объекта в PHPUnit вам может потребоваться настроить поддержку мок-объектов. Это можно сделать, унаследовавшись от класса PHPUnitFrameworkTestCase
и вызвав его метод getMockForAbstractClass
или getMockBuilder
.