Testing keys of a JSON API response
Published on 2022-06-28 • Modified on 2022-06-28
In this snippet, we see how to test the presence of keys in a JSON API response. We can use the PHPUnit assertEqualsCanonicalizing()
assertion. As you can see, the order of the keys doesn't matter as the array is normalized before the comparison is made.
/**
* @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'],
]);
}
Call to action
Did you like this post? You can help me back in several ways: (use the "reply" link on the right to comment or to contact me )
- Report any error/typo.
- Report something that could be improved.
- Like and repost!
- Follow me on Bluesky 🦋
- Subscribe to the RSS feed.
- Click on the More on Stackoverflow buttons to make me win "Announcer" badges 🏅.
Thank you for reading! And see you soon on Strangebuzz! 😉
