Faire Moka attendre avant d'exécuter le test suivant
Eu quelques moka des tests qui nécessitent des données à partir avant les appels de fonction, mais ensuite parce que c'est à l'aide d'un webservice, et aimerait qu'elle littéralement attendre pour une quantité de temps prédéterminée avant d'exécuter le test suivant, quelque chose comme:
var global;
it('should give some info', function(done) {
run.someMethod(param, function(err, result) {
global = result.global
done();
});
});
wait(30000); //basically block it from running the next assertion
it('should give more info', function(done) {
run.anotherMethod(global, function(err, result) {
expect(result).to.be.an('object');
done();
});
});
Toutes les idées seront les bienvenues. Merci!
OriginalL'auteur R.A. Lucas | 2014-08-27
Vous devez vous connecter pour publier un commentaire.
setTimeout certainement pourrait aider, mais peut-être il est un "nettoyeur" façon de le faire.
docs dit réellement à utiliser
this.timeout(delay)
pour éviter les erreurs de délai d'attente lors des tests de code asynchrone, donc soyez prudent.Je pensais que la question était d'environ deux tests consécutifs maintien de l'ordre?
Zlatko, la question était de savoir retards dans l'exécution de test suivant dans la requête. c'.settimeout dans cet exemple est de avid erreur de délai d'attente par défaut est de 20000 à moka si je suis à droite.
"A certains moka des tests qui nécessitent des données à partir avant les appels de fonction" de l'OP question m'a dit qu'il avait simplement besoin d'attendre pour le test précédent à la fin, pas de délai d'expiration de l'actuel. J'ai raté quelque sorte le "littéralement attendre". Aussi, merci pour le commentaire, mais il serait plus visible pour moi s'il était sur le downvoted question.
J'ai aimé la propreté dans le premier exemple. M'a beaucoup aidé, merci
OriginalL'auteur Flops
Tout
this.timeout()
permettra de prolonger le délai d'attente d'un test unique, ce n'est pas la réponse à votre question.this.timeout()
définit le délai d'expiration de votre actuel test.Mais ne vous inquiétez pas, vous devriez être bien de toute façon. Les Tests ne sont pas exécutés en parallèle, ils sont fait dans la série, de sorte que vous ne devriez pas avoir un problème avec votre approche globale.
Vous êtes à la droite, en parallèle !== async. Moka tests plus précisément, ils courent dans la série. L'un, de l'autre, l'un que l'autre etc.
OriginalL'auteur Zlatko
Tout d'abord, pour la bonne unité de test, vous ne devriez jamais avoir besoin de dormir entre les tests. Si vous avez besoin d'un rêve, cela signifie que les fonctions de test nécessitent un délai avant de terminer sa durée de tâche, qui doivent être traitées à l'intérieur de cette fonction, avec quelques asynchrone d'attente ou de sommeil. À la sortie d'une fonction, sa durée de vie doit prendre fin et le résultat attendu doit être acquis immédiatement.
OriginalL'auteur Emre Tapcı
En voici un autre, à l'aide de promesses:
OriginalL'auteur Jeff Lowery