Je dois appeler expect().to.throw()
sur une fonction qui prend des arguments. Par exemple, dire que je donne les résultats suivants:nœud: utiliser chai's expect.to.throw sur une fonction qui prend des arguments
var func = function(x) {
if (x > 1) {
throw new Error()
} else {
console.log('hello')
}
}
expect(func).to.throw()
Cela échoue, car il appelle func
sans argument, ce qui signifie qu'il ne sera jamais une erreur. Mais si j'appelle expect(func(2)).to.throw()
, j'obtiens AssertionError: expected undefined to be a function
. La fonction est appelée et la valeur de retour est transmise à expect
.
Comment puis-je utiliser expect().to.throw()
et donner les arguments de fonction inclus. Est le seul moyen de le faire avec une fonction anonyme, comme expect(() => {func(2)}).to.throw()
?
'bind()' est également un bon choix. 'Attendre (fn.bind (null, 42)) to.throw()' –