assert.throws(block[, error][, message])
Expects the function block
to throw an error.
If specified, error
can be a constructor, RegExp
, or validation function.
If specified, message
will be the message provided by the AssertionError
if the block fails to throw.
Validate instanceof using constructor:
assert.throws( () => { throw new Error('Wrong value'); }, Error );
Validate error message using RegExp
:
assert.throws( () => { throw new Error('Wrong value'); }, /value/ );
Custom error validation:
assert.throws( () => { throw new Error('Wrong value'); }, function(err) { if ( (err instanceof Error) && /value/.test(err) ) { return true; } }, 'unexpected error' );
Note that error
can not be a string. If a string is provided as the second argument, then error
is assumed to be omitted and the string will be used for message
instead. This can lead to easy-to-miss mistakes:
// THIS IS A MISTAKE! DO NOT DO THIS! assert.throws(myFunction, 'missing foo', 'did not throw with expected message'); // Do this instead. assert.throws(myFunction, /missing foo/, 'did not throw with expected message');
Please login to continue.