In JUnit si può fallire un test facendo:Fail un test con Chai.js
fail("Exception not thrown");
Qual è il modo migliore per ottenere lo stesso utilizzando Chai.js?
In JUnit si può fallire un test facendo:Fail un test con Chai.js
fail("Exception not thrown");
Qual è il modo migliore per ottenere lo stesso utilizzando Chai.js?
Ci sono molti modi di falsificare un fallimento - come la assert.fail()
citato da @DmytroShevchenko -, ma di solito, è possibile evitare queste stampelle ed esprimere l'intento del test in un modo migliore, che porterà a messaggi più significativi se i test falliscono.
Per esempio, se si prevede un'eccezione da buttare, perché non dirlo direttamente:
expect(function() {
// do stuff here which you expect to throw an exception
}).to.throw(Error);
Come si può vedere, quando si prova eccezioni, si deve avvolgere il codice in una funzione anonima.
Ovviamente, è possibile perfezionare il test controllando un tipo di errore più specifico, un messaggio di errore previsto ecc. Vedere .throw
nel numero Chai docs per ulteriori informazioni.
C'è assert.fail()
. Si può usare in questo modo:
assert.fail(0, 1, 'Exception not thrown');
... e la vostra risposta è quella giusta nel caso in cui non v'è alcuna altra opzione, in modo da ottenere la mia upvote, troppo :) – hashchange
@hashchange C'è un buon esempio in cui si usa che invece di "to.throw" e è nel caso in cui potresti lanciare errori nei costruttori di oggetti. – Mayhem93
C'è anche un [** 'expect.fail()' **] (http://chaijs.com/api/bdd/#method_fail) – randominstanceOfLivingThing
Sono completamente d'accordo sul fatto che quello che hai delineato è un approccio migliore. –