assertThrown

Asserts that the given expression throws the given type of Throwable. The Throwable is caught and does not escape assertThrown. However, any other Throwables will escape, and if no Throwable of the given type is thrown, then an AssertError is thrown.

void
assertThrown
(
T : Throwable = Exception
E
)
(
lazy E expression
,
string msg = null
,
string file = __FILE__
,
size_t line = __LINE__
)

Parameters

T

The Throwable to test for.

expression E

The expression to test.

msg string

Optional message to output on test failure.

file string

The file where the error occurred. Defaults to __FILE__.

line size_t

The line where the error occurred. Defaults to __LINE__.

Throws

AssertError if the given Throwable is not thrown.

Examples

import core.exception : AssertError;
import std.string;

assertThrown!StringException(enforce!StringException(false, "Error!"));

//Exception is the default.
assertThrown(enforce!StringException(false, "Error!"));

assert(collectExceptionMsg!AssertError(assertThrown!StringException(
           enforce!StringException(true, "Error!"))) ==
       `assertThrown failed: No StringException was thrown.`);

Meta