Aller au contenu principal

4-2 Test d'un retour de liste (Obtenir liste projets)

Poursuivons le test commencé précédemment, soit celui testant l'obtention d'une liste de projets.

URL pour ce test: {{baseUrl}}/projets.

Nous avons terminé l'étape précédente en testant que le code de réponse était bien 200 (OK), que la réponse avait bien des données (body) et que cette réponse contient du 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;
});

Vérifier le retour de plusieurs éléments (tableau)

Ceci dit, il serait pertinent de tester aussi que ce que nous avons obtenu est un array (tableau de projets) et que ce même tableau n'est pas vide (qu'il contient des projets!).

Pour ce faire, on peut premièrement obtenir le contenu de la réponse en appelant la fonction json() sur l'objet pm.response. Par exemple, débutons un autre bloc de test:

pm.test("La réponse est de type array et contient des éléments", function () {
let jsonData = pm.response.json();
});

Ici, on met le contenu de la réponse dans une variable jsonData. Cela nous permettra de faire des opérations sur le retour. Ensuite, on peut faire référence à des propriétés de cet objet JSON afin de faire différentes vérifications:

pm.test("La réponse est de type array et contient des éléments", function () {
let jsonData = pm.response.json();
pm.expect(jsonData).to.be.an('array');
pm.expect(jsonData).to.be.not.empty;
});

Par exemple, dans le cas présent, on vérifie que:

  1. Le contenu de jsonData (la réponse) est un array
  2. Que cet array n'est pas vide et contient des éléments

Vérifier que les éléments reçus contiennent certaines propriétés

Finalement, on peut même vérifier que parmi les résultats, ces derniers contiennent bien une propriété nom, par exemple:

pm.test("Contient la propriété nom", function () {
let jsonData = pm.response.json();
let firstElement = jsonData.first();
pm.expect(firstElement).to.have.property('nom')
});
  • firstElement: le premier élément du tableau retourné
  • pm.expect(firstElement).to.have.property('nom'): on vérifie que le premier élément a bien une propriété nom.

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 array et contient des éléments", function () {
let jsonData = pm.response.json();
pm.expect(jsonData).to.be.an('array');
pm.expect(jsonData).to.be.not.empty;
});

pm.test("Contient la propriété nom", function () {
let jsonData = pm.response.json();
let firstElement = jsonData.first();
pm.expect(firstElement).to.have.property('nom')
});
attention

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