Je soumets une demande de réseau dans un cas de test, mais cela prend parfois plus de 2 secondes (le délai par défaut).
Comment augmenter le délai d'attente pour un seul cas de test ?
Je soumets une demande de réseau dans un cas de test, mais cela prend parfois plus de 2 secondes (le délai par défaut).
Comment augmenter le délai d'attente pour un seul cas de test ?
Vous pouvez également envisager d'adopter une approche différente et de remplacer l'appel à la ressource réseau par un stub ou un objet fantaisie. Utilisation de Sinon vous pouvez découpler l'application du service réseau et concentrer vos efforts de développement.
Ce n'est pas entièrement pas pertinent ; fréquemment, il est judicieux de stub la réponse du réseau afin de ne pas dépendre de la disponibilité de la machine ou du retour de la réponse correcte. Cependant, si vous testez la réponse elle-même, alors oui, vous devez quand même le faire.
Pour la navigation d'essai sur Express
:
const request = require('supertest');
const server = require('../bin/www');
describe('navigation', () => {
it('login page', function(done) {
this.timeout(4000);
const timeOut = setTimeout(done, 3500);
request(server)
.get('/login')
.expect(200)
.then(res => {
res.text.should.include('Login');
clearTimeout(timeOut);
done();
})
.catch(err => {
console.log(this.test.fullTitle(), err);
clearTimeout(timeOut);
done(err);
});
});
});
Dans l'exemple, le temps de test est de 4000 (4s).
Note : setTimeout(done, 3500)
est mineur pour que done
est appelé pendant la durée du test mais clearTimeout(timeOut)
il évite d'être utilisé pendant tout ce temps.
Cela a marché pour moi ! Je n'ai rien trouvé pour que ça marche avec before().
describe("When in a long running test", () => {
it("Should not time out with 2000ms", async () => {
let service = new SomeService();
let result = await service.callToLongRunningProcess();
expect(result).to.be.true;
}).timeout(10000); // Custom Timeout
});
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.