unitarias test pruebas nodejs node framework javascript node.js chai

javascript - test - Falla una prueba con Chai.js



nodejs test (4)

Hay assert.fail() . Puedes usarlo así:

assert.fail(0, 1, ''Exception not thrown'');

En JUnit puedes fallar una prueba haciendo:

fail("Exception not thrown");

¿Cuál es la mejor manera de lograr lo mismo usando Chai.js?


Hay muchas formas de falsificar una falla, como el assert.fail() mencionado por @DmytroShevchenko, pero, por lo general, es posible evitar estas muletas y expresar la intención de la prueba de una mejor manera, lo que llevará a que sea más significativo mensajes si las pruebas fallan.

Por ejemplo, si espera que se lance una excepción, por qué no decirlo directamente:

expect( function () { // do stuff here which you expect to throw an exception } ).to.throw( Error );

Como puede ver, al probar excepciones, tiene que envolver su código en una función anónima.

Por supuesto, puede refinar la prueba comprobando un tipo de error más específico, un mensaje de error esperado, etc. Consulte .throw en los documentos de Chai para obtener más información.


Lo hice de esta manera

const expect = require(''chai'').expect; const exists = true; expect(!exists).to.throw(''Unknown request type'');


También me encontré con que aquí no había fail(msg) directa fail(msg) . Durante algún tiempo, trabajé con ...

assert.isOk(false, ''timeOut must throw'')

(Usando esto en lugares que no deberían ser accesibles, es decir, en la prueba de promesa ...)

Chai es compatible con los errores estándar de ES6, así que esto funciona:

throw new Error(''timeOut must throw'')

... o, dado que asertarse en sí mismo es esencialmente lo mismo que asertar . Está bien ... mi favorito es:

assert(false,''timeOut must throw'')

... bueno, casi tan corto como assert.fail(…