Class ThrowableTypeAssert<T extends Throwable>

java.lang.Object
org.assertj.core.api.ThrowableTypeAssert<T>
Type Parameters:
T - type of throwable to be thrown.
All Implemented Interfaces:
Descriptable<ThrowableTypeAssert<T>>
Direct Known Subclasses:
SoftThrowableTypeAssert

public class ThrowableTypeAssert<T extends Throwable> extends Object implements Descriptable<ThrowableTypeAssert<T>>
Assertion class checking Throwable type.

The class itself does not do much, it delegates the work to ThrowableAssertAlternative after calling isThrownBy(ThrowingCallable).

See Also:
  • Field Details

    • expectedThrowableType

      protected final Class<? extends T extends Throwable> expectedThrowableType
    • description

      protected Description description
  • Constructor Details

    • ThrowableTypeAssert

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

    • 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.
    • checkThrowableType

      protected void checkThrowableType(Throwable throwable)
    • buildThrowableTypeAssert

      protected ThrowableAssertAlternative<T> buildThrowableTypeAssert(T throwable)
    • 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.