Je teste/confirme certains éléments de verrouillage de la base de données et je souhaite lancer un test qui confirmera que la demande (bibliothèque "demande-promesse") se bloquera si je verrouille la ligne.

Certaines idées qui n'ont pas fonctionné étaient

request(options).catch((response) => {})

assert.throws(fn, Error, "timeout")

Je continue de recevoir ce message : Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

Existe-t-il un moyen d'affirmer que ce délai d'attente se produit ?

0
Keith 13 mars 2019 à 20:16

2 réponses

Meilleure réponse

Dans un test moka (ou describe, before, etc.), this.timeout(msec) changera la durée d'exécution du test avant que Mocha considère que le test a échoué.

Consultez la documentation Mocha pour plus d'informations.

2
jakemingolla 13 mars 2019 à 17:22

Ma solution consistait à définir un délai d'attente pour la moitié du temps que je m'attendais à ce que le délai d'attente prenne.

setTimeout(function(){ done(); })

Ensuite, dans ma réponse de promesse de point de terminaison, j'avais

done(new Error("Timeout should have happened.");

De cette façon, si le délai d'attente se produit, done est appelé. Si cela ne se produit pas, done est appelé avec une erreur.

0
Keith 13 mars 2019 à 19:52