Mocha / Chai expect.to.throw : Comprendre comment cela fonctionne
Lors des tests, il est crucial de s'assurer que les erreurs sont générées comme prévu . Cependant, les utilisateurs rencontrent souvent des difficultés avec l'expect.to.throw de Chai, ne parvenant pas à détecter correctement les erreurs générées. Voyons pourquoi cela se produit et comment le résoudre.
Le problème survient lors de la transmission directe du résultat d'un appel de fonction à expect.to.throw. Par exemple, expect(model.get('z')).to.throw(...). Dans ce cas, vous affirmez sur la valeur de retour de model.get('z'), et non sur la génération réelle d'une erreur.
Pour résoudre ce problème, vous devez transmettre une fonction attendant un appel s'attendre. Cette fonction appellerait alors model.get avec les arguments appropriés. Considérons le code suivant :
expect(model.get.bind(model, 'z')).to.throw('Property does not exist in model schema.');
Ici, model.get.bind(model, 'z') crée une nouvelle fonction qui, lorsqu'elle est appelée, invoque model.get avec l'argument 'z', résolvant le problème problème.
Comprendre ce comportement est essentiel pour utiliser efficacement expect.to.throw. N'oubliez pas de transmettre les fonctions qui induiront l'erreur attendue, garantissant ainsi des tests précis des scénarios de gestion des erreurs.
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!