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