Tester les clés d'une réponse API JSON
Publié le 28/06/2022 • Actualisé le 28/06/2022
Dans ce bout de code, nous voyons comment tester la présence de clés d'une réponse API JSON. On peut utiliser l'assertion PHPUnit assertEqualsCanonicalizing()
. Comme on peut le voir, l'ordre des clés n'a pas d'importance puisque le tableau est normalisé avant que la comparaison soit effectuée.
/**
* @see ApiController::stats()
*/
public function testStats(): void
{
$stats = $this->repo->getArticlesCount();
$client = self::createClient();
$client->request('GET', '/stats');
self::assertResponseIsSuccessful();
self::assertResponseHeaderSame('content-type', 'application/json');
self::assertEqualsCanonicalizing(['posts', 'snippets'], array_keys($stats));
self::assertEqualsCanonicalizing(['snippets', 'posts'], array_keys($stats));
self::assertJsonContains([
'posts' => $stats['posts'],
'snippets' => $stats['snippets'],
]);
}