### Assert failure

Citrus test actions fail with Java exceptions and error messages. This gives you the opportunity to expect an action to fail during test execution. You can simple assert a Java exception to be thrown during execution. See the example for an assert action definition in a test case:

XML DSL

    <testcase name="assertFailureTest">
        <actions>
            <assert exception="com.consol.citrus.exceptions.CitrusRuntimeException"
                       message="Unknown variable ${date}">
                <when>
                    <echo>
                        <message>Current date is: ${date}</message>
                    </echo>
                </when>
            </assert>
        </actions>
    </testcase>

Java DSL designer and runner

    @CitrusTest
    public void assertTest() {
        assertException().exception(com.consol.citrus.exceptions.CitrusRuntimeException.class)
                         .message("Unknown variable ${date}")
                    .when(echo("Current date is: ${date}"));
    }

Note Note that the assert action requires an exception. In case no exception is thrown by the embedded test action the assertion and the test case will fail!

The assert action always wraps a single test action, which is then monitored for failure. In case the nested test action fails with error you can validate the error in its type and error message (optional). The failure has to fit the expected one exactly otherwise the assertion fails itself.

Important Important to notice is the fact that asserted exceptions do not cause failure of the test case. As you except the failure to happen the test continues with its work once the assertion is done successfully.