Aller au contenu principal

4-3 Test d'un retour d'objet (Obtenir projet)

Maintenant, essayons de tester une requête pour obtenir le détail d'un projet.

URL pour ce test: {{baseUrl}}/projets?id=eq.1

attention

Assurez-vous de modifier 1 pour un identifiant de projet valide dans votre compte Supabase.

Tester que la réponse est un succès et de type JSON

Premièrement, on peut tester, de façon similaire aux tests précédents, que la réponse est un succès, qu'elle a un body et est de type JSON.

pm.test("La réponse est un succès et contient du JSON", function () {
pm.response.to.be.ok;
pm.response.to.be.withBody;
pm.response.to.be.json;
});

Tester que la réponse est un objet et contient certaines propriétés

Finalement, on veut au minimum tester que la réponse contient des propriétés attendues, comme nom et description. On peut utiliser le même principe que précédemment, soit en mettant le retour dans une variable jsonData et effectuer des vérifications sur cette dernière.

pm.test("La réponse est de type objet et contient les propriétés attendues", function () {
let jsonData = pm.response.json();
pm.expect(jsonData).to.be.an('object');
pm.expect(jsonData).to.have.property('nom');
pm.expect(jsonData).to.have.property('description');
});

Dans ce cas, on vérifie que:

  1. Le contenu de jsonData (retour de l'API) est un objet
  2. Cet objet contient bien des propriétés nom et description
attention

Ceci est un exemple de vérification de propriétés. Pour la mission 1 (tester l'API), vous devez vérifier que les propriétés pertinentes sont présentes!

Scénario de test complet

Le scénario de test complet, au final, est donc le suivant:

pm.test("La réponse est un succès et contient du JSON", function () {
pm.response.to.be.ok;
pm.response.to.be.withBody;
pm.response.to.be.json;
});

pm.test("La réponse est de type objet et contient les propriétés attendues", function () {
let jsonData = pm.response.json();
pm.expect(jsonData).to.be.an('object');
pm.expect(jsonData).to.have.property('nom');
pm.expect(jsonData).to.have.property('description');
});