J'ai une méthode qui peut provoquer une Erreur, mais j'ai du mal à écrire un scénario de test SinonJS/Mocha/Should pour cette condition.Attraper des erreurs lancées avec SinonJS
fonction de l'échantillon testé:
function testError(value) {
if (!value) {
throw new Error('No value');
return false;
}
};
test de l'échantillon:
describe('#testError', function() {
it('throws an error', function() {
var spy = sinon.spy(testError);
testError(false);
spy.threw().should.be.true();
});
});
Ce sorties:
#testError
1) throws an error
0 passing (11ms)
1 failing
1) #testError throws an error:
Error: No value
at testError (tests/unit/js/test-error.js:6:14)
at Context.<anonymous> (tests/unit/js/test-error.js:14:6)
Je me attendais Sinon pour attraper l'erreur et me permettre d'espionner le lancer, mais il semble échouer le test à la place. Des idées? J'ai fait référence à Don't sinon.js spys catch errors? mais la seule solution est d'utiliser expect
. Je préférerais garder une seule bibliothèque d'assertions si possible.
Merci, @nrabinowitz. On dirait que '' 'should.throws''' pourrait être le ticket. Voir ma réponse révisée ci-dessous. – benjarwar