Sionnach733 Sionnach733 - 11 months ago 76
Javascript Question

Fail a test with Chai.js

In JUnit you can fail a test by doing:

fail("Exception not thrown");

What's the best way to achieve the same using Chai.js?

Answer Source

There are many ways to fake a failure – like the mentioned by @DmytroShevchenko –, but usually, it is possible to avoid these crutches and express the intent of the test in a better way, which will lead to more meaningful messages if the tests fail.

For instance, if you expect a exception to be thrown, why not say so directly:

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

As you can see, when testing exceptions, you have to wrap your code in an anonymous function.

Of course, you can refine the test by checking for a more specific error type, expected error message etc. See .throw in the Chai docs for more.