Class ThrowableTypeAssert<T extends Throwable>

    • Field Detail

      • expectedThrowableType

        protected final Class<? extends T extends Throwable> expectedThrowableType
    • Constructor Detail

      • ThrowableTypeAssert

        public ThrowableTypeAssert​(Class<? extends T> throwableType)
        Default constructor.
        Parameters:
        throwableType - class representing the target (expected) exception.
    • Method Detail

      • isThrownBy

        public ThrowableAssertAlternative<T> isThrownBy​(ThrowableAssert.ThrowingCallable throwingCallable)
        Assert that an exception of type T is thrown by the throwingCallable and allow to chain assertions on the thrown exception.

        Example:

         assertThatExceptionOfType(IOException.class).isThrownBy(() -> { throw new IOException("boom!"); })
                                               .withMessage("boom!"); 
        Parameters:
        throwingCallable - code throwing the exception of expected type
        Returns:
        return a ThrowableAssertAlternative.
      • as

        public ThrowableTypeAssert<T> as​(String description,
                                         Object... args)
        Sets the description of the assertion that is going to be called after.

        You must set it before calling the assertion otherwise it is ignored as the failing assertion breaks the chained call by throwing an AssertionError.

        The description follows String.format(String, Object...) syntax.

        Example :

         try {
           // set a bad age to Mr Frodo which is really 33 years old.
           frodo.setAge(50);
           // specify a test description (call as() before the assertion !), it supports String format syntax.
           assertThat(frodo.getAge()).as("check %s's age", frodo.getName()).isEqualTo(33);
         } catch (AssertionError e) {
           assertThat(e).hasMessage("[check Frodo's age] expected:<[33]> but was:<[50]>");
         }
        Specified by:
        as in interface Descriptable<T extends Throwable>
        Parameters:
        description - the new description to set.
        args - optional parameter if description is a format String.
        Returns:
        this object.
        See Also:
        Descriptable.describedAs(String, Object...)
      • as

        public ThrowableTypeAssert<T> as​(Description description)
        Sets the description of the assertion that is going to be called after.

        You must set it before calling the assertion otherwise it is ignored as the failing assertion breaks the chained call by throwing an AssertionError.

        This overloaded version of "describedAs" offers more flexibility than the one taking a String by allowing users to pass their own implementation of a description. For example, a description that creates its value lazily, only when an assertion failure occurs.

        Specified by:
        as in interface Descriptable<T extends Throwable>
        Parameters:
        description - the new description to set.
        Returns:
        this object.
        See Also:
        Descriptable.describedAs(Description)
      • describedAs

        public ThrowableTypeAssert<T> describedAs​(String description,
                                                  Object... args)
        Sets the description of the assertion that is going to be called after.

        You must set it before calling the assertion otherwise it is ignored as the failing assertion breaks the chained call by throwing an AssertionError.

        Alias for Descriptable.as(String, Object...) since "as" is a keyword in Groovy.

        Specified by:
        describedAs in interface Descriptable<T extends Throwable>
        Parameters:
        description - the new description to set.
        args - optional parameter if description is a format String.
        Returns:
        this object.
      • describedAs

        public ThrowableTypeAssert<T> describedAs​(Description description)
        Sets the description of the assertion that is going to be called after.

        You must set it before calling the assertion otherwise it is ignored as the failing assertion breaks the chained call by throwing an AssertionError.

        This overloaded version of "describedAs" offers more flexibility than the one taking a String by allowing users to pass their own implementation of a description. For example, a description that creates its value lazily, only when an assertion failure occurs.

        Specified by:
        describedAs in interface Descriptable<T extends Throwable>
        Parameters:
        description - the new description to set.
        Returns:
        this object.