PHPunit: Comment tester un controller qui throw une erreur.
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 la l’exception est bien levée il suffit d’écrire cela
public function testList(): void { $this->expectException(BadRequestHttpException::class); $client = self::createClient(); $client->catchExceptions (false); $crawler = $client->request( Request::METHOD_POST, '/add' ); }
La première fonction expectException indique a phpunit que la méthode va retourner une erreur.
Publicités
La deuxième catchExceptions évite que l’exception soit affiché sur le terminal lors des tests
Testing Project Test Suite ..[error] Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\BadRequestHttpException:...
Ainsi la suite de points ne sera pas interrompues.
Publicités