Callable API
Here are the examples of how you can use the should
function with exceptions.
Summary
Examples
Throw exception
You can check if some code throws or not Exceptions. The throwException
template will return a ThrowableProxy
which for
convience it has all the Throwable properties. A simple way of checking an
exception message is:
({
throw new CustomException("test");
}).should.throwException!CustomException.msg.should.equal("test");
or
void myFunction() {
throw new CustomException("test");
}
/// This way of testing exceptions does not work with
/// functions that return arrays or ranges
myFunction.should.throwException!CustomException.msg.should.equal("test");
The ThrowableProxy
it also have a withMessage
method that returns a new should
structure, initialized with the exception message:
({
throw new CustomException("test");
}).should.throwException!CustomException.withMessage.equal("test");
or
void myFunction() {
throw new CustomException("test");
}
myFunction.should.throwException!CustomException.withMessage.equal("test");
Success expectations
({
throw new CustomException("test");
}).should.throwException!CustomException;
({ }).should.not.throwException!CustomException;
Failing expectations
({
throw new Exception("test");
}).should.not.throwException!CustomException;
({ }).should.throwException!CustomException;
Throw any exception
The throwAnyException
assert is an alias for throwException!Exception
Success expectations
({
throw new Exception("test");
}).should.throwAnyException;
({ }).should.not.throwAnyException;
Failing expectations
({
throw new Exception("test");
}).should.not.throwAnyException;
({ }).should.throwAnyException;
Throw something
The throwSomething
assert is an alias for throwException!Throwable
({
assert(false, "test");
}).should.throwSomething.withMessage.equal("test");
Execution time
Success expectations
({ }).should.haveExecutionTime.lessThan(1.msecs);
Failing expectations
({
Thread.sleep(2.msecs);
}).should.haveExecutionTime.lessThan(1.msecs);
Be null
Success expectations
void delegate() action;
action.should.beNull;
({ }).should.not.beNull;
Failing expectations
void delegate() action;
action.should.not.beNull;
({ }).should.beNull;