Je commence à utiliser Lab pour tester mon API. L'API effectue les opérations CRUD habituelles et je me demande comment tester les méthodes Update et Delete qui nécessitent un ID de document.Test de l'API Hapijs avec Lab
Mon API renvoie le document mongo nouvellement créé à l'intérieur de response.payload
. Ce que je ne comprends pas, c'est pourquoi dans le test DELETE
resultId
est undefined
.
Voici mon code:
lab.experiment('User module',() => {
var resultId; // Initialize a variable to save the document ID later.
lab.test('should create user', (done) => {
var options = {
method: 'POST',
url: '/api/v1/users',
payload: {
username: 'testUser',
password: 'testPassword'
}
};
server.inject(options, (response) => {
resultId = response.payload._id; // Update resultId
Code.expect(response.statusCode).to.equal(200);
done();
});
});
lab.test('should delete user', (done) => {
var options = {
method: 'DELETE',
url: '/api/v1/users/' + resultId // Turns out resultId is undefined
};
server.inject(options, (response) => {
Code.expect(response.statusCode).to.equal(200);
done();
});
});
});
Je n'utilise pas le drapeau '-p', mais je vois comment avoir un test dépendant du résultat d'un autre est mauvais. Merci d'avoir fait remarquer cela. Cependant, comment dois-je tester les terminaux qui nécessitent l'existence d'un document mongo? –
Vous pouvez simuler votre objet de base de données. Ou utilisez une base de données de test avec des appareils. –
@MattHarrison juste un exemple simple serait grandement apprécié :) – Whisher