Maison > interface Web > js tutoriel > Pourquoi `expect.to.throw` ne parvient-il pas à détecter les erreurs générées dans les tests Mocha/Chai ?

Pourquoi `expect.to.throw` ne parvient-il pas à détecter les erreurs générées dans les tests Mocha/Chai ?

Linda Hamilton
Libérer: 2024-11-17 11:53:01
original
855 Les gens l'ont consulté

Why Does `expect.to.throw` Fail to Catch Thrown Errors in Mocha/Chai Tests?

Mocha / Chai Expect.to.throw ne détecte pas les erreurs générées ?

Dans vos tests node.js, vous rencontrez des difficultés pour utiliser Expect.to de Chai .throw pour détecter les erreurs générées. Les tests échouent systématiquement, signalant l’erreur générée. Cependant, si vous encapsulez le test dans un bloc try-catch et affirmez l'erreur capturée, le test réussit.

Est-ce que expect.to.throw ne fonctionne pas comme prévu ?

Pour résoudre ce problème, vous devez transmettre une fonction pour attendre, et non le résultat de l'appel de fonction :

expect(model.get.bind(model, 'z')).to.throw('Property does not exist in model schema.');
expect(model.get.bind(model, 'z')).to.throw(new Error('Property does not exist in model schema.'));
Copier après la connexion

Dans votre approche originale, vous transmettiez le résultat de l'appel de model.get('z') auquel vous vous attendez. Pour tester si une fonction génère une erreur, vous devez fournir une fonction qui s'attend à s'appeler elle-même. La méthode bind crée une nouvelle fonction qui, lorsqu'elle est appelée, appelle model.get avec les arguments attendus.

Reportez-vous à la documentation fournie pour plus de précisions sur la méthode bind.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal