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'],
        ]);
    }

  Read the doc  Random snippet

  Work with me!


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 )

Thank you for reading! And see you soon on Strangebuzz! 😉

COil