Pour les nouvelles versions moka:
Vous pouvez maintenant retourner une promesse au moka, et moka attendra qu'elle se termine avant de continuer. Par exemple, le test suivant réussira:
let a = 0;
before(() => {
return new Promise((resolve) => {
setTimeout(() => {
a = 1;
resolve();
}, 200);
});
});
it('a should be set to 1', () => {
assert(a === 1);
});
Vous pouvez trouver la documentation ici
Pour les anciennes versions de moka:
Si vous souhaitez que votre demande asynchrone soit terminée avant que tout le reste ne se produise, vous devez utiliser le done
paramètre dans votre demande avant et l'appeler dans le rappel.
Mocha attendra alors d' done
être appelé pour commencer à traiter les blocs suivants.
before(function (done) {
db.collection('user').remove({}, function (res) { done(); }); // It is now guaranteed to finish before 'it' starts.
})
it('test spec', function (done) {
// execute test
});
after(function() {});
Vous devez cependant faire attention, car ne pas stubbing la base de données pour les tests unitaires peut fortement ralentir l'exécution, car les requêtes dans une base de données peuvent être assez longues par rapport à une simple exécution de code.
Pour plus d'informations, consultez la documentation Mocha .
before
gestionnaire. Egbefore(function () { return db.collection...}