Skip to content Skip to sidebar Skip to footer

How To Test For Thrown Error With Chai.should

I'm using Chai.should and I need to test for an exception, but whatever I try, I cannot get it to work. The docs only explain expect :( I have this Singleton class which throws an

Solution 1:

I know this is an answered question, but i'd still like to throw in my two cents.

There is a section in the style guide for this, namely: http://chaijs.com/guide/styles/#should-extras. So what does this look like in practice:

should.Throw(() =>newMySingleton(), Error);

It's not all that different from the accepted answer, i find it a bit more readable though, and more in line with their guideline.

Solution 2:

The Problem here is that you are executing the function directly, effectively preventing chai from being able to wrap a try{} catch(){} block around it.

The error is thrown before the call even reaches the should-Property.

Try it like this:

it('should not be possible to create a new instance', () => {
   (function () {
       newMySingleton();
   }).should.throw(Error, /Cannot construct singleton/);
});

or this:

MySingleton.should.throw(Error('Cannot construct singleton');

This lets Chai handle the function call for you.

Post a Comment for "How To Test For Thrown Error With Chai.should"