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:
- Le contenu de
jsonData
(la réponse) est unarray
- 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')
});
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!