PHPUnit : comment tester un contrôleur qui lance une erreur

Code sur écran d'ordinateur

Imaginons que nous avons une méthode dans un controller comme cela: /** * @Route(path= »/add », name= »add », methods={« POST »}) */ public function add(Request $request,): Response { throw new BadRequestHttpException(‘Error’); } Pour tester que l’exception est bien levée il suffit d’écrire ceci public function testList(): void { $this->expectException(BadRequestHttpException::class); $client = self::createClient(); $client->catchExceptions (false); $crawler = $client->request( Request::METHOD_POST, ‘/add’ ); … Lire la suite

PhpUnit – mock – set interne protected / private variable

Code sur écran d'ordinateur

En utilisant des mocks il est souvent nécessaire de donner une valeur à une variable private ou protected. Pour ce faire il suffit d’utiliser la classe Reflection. $basket = $this->getMockBuilder(‘Basket’) ->disableOriginalConstructor() ->getMock(); $basketReflection = new ReflectionClass($basket); $sessionId = $basketReflection->getProperty(‘sessionId’); $sessionId->setAccessible(true); $sessionId->setValue($basket,’abc’); Ainsi la valeur de sessionId dans notre Mock sera ‘abc’.

PHPUnit comment mocker / simuler un objet et des méthodes

MacBook avec code sur un bureau

Lorsque l’on commence à utiliser PHPUnit, il arrive fréquemment que l’on se retrouve face au besoin de simuler une méthode ou un objet. Heureusement PHPUnit a quelques méthodes qui peuvent être très utiles. Comment simuler un objet La manière la plus simple de créer un objet mocké $product = $this->getMockBuilder(‘Product’) ->getMock(); ou $product = $this->getMockBuilder(‘Product’) … Lire la suite