Aller au contenu principal

4-4 Test de cas invalides

Un bon test ne vérifie pas seulement les cas valides (qu'on reçoit bien une réponse valide de l'API). Un bon test vérifie que l'API retourne aussi une réponse cohérente dans le cas où la requête n'est pas valide.

Par exemple, dans le cas de l'obtention d'un projet, si jamais l'identifiant de projet n'existe pas, il serait bien de vérifier que la réponse est bien une réponse avec le code 404.

  1. Dupliquez la requête Obtenir un projet img
  2. Renommez la nouvelle requête (la copie) Obtenir un projet inexistant
  3. Modifiez l'URL de la requête pour un identifiant de projet inexistant, par exemple: {{baseUrl}}/projets?id=eq.9999
  4. Ajoutez un test vérifiant que le retour est NotFound
    pm.test("La réponse retourne une erreur 404", function () {
    pm.response.to.be.notFound
    });
  5. Exécutez la requête

Vous remarquerez que le test échoue!

img

C'est que Supabase ne retourne pas d'erreur 404 dans le cas d'une ressource non trouvée, mais plutôt une erreur 406. Ce choix est discutable, mais pour l'instant ajustons notre test pour qu'il soit conforme à ce qui est attendu.

pm.test("La réponse retourne une erreur 406", function () {
pm.response.to.have.status(406)
});;

Vérifier le contenu de l'erreur

Il est aussi possible de vérifier le contenu du message d'erreur.

pm.test("La réponse retourne une erreur 406", function () {
pm.response.to.have.status(406)
let jsonData = pm.response.json();
pm.expect(jsonData).to.be.an('object');
pm.expect(jsonData).to.have.property('details');
pm.expect(jsonData.details).to.equal("The result contains 0 rows")
});;