Class ThrowableSubject

  • Direct Known Subclasses:
    TruthFailureSubject

    public class ThrowableSubject
    extends Subject
    Propositions for Throwable subjects.

    Truth does not provide its own support for calling a method and automatically catching an expected exception, only for asserting on the exception after it has been caught. To catch the exception, we suggest assertThrows (JUnit), assertFailsWith (kotlin.test), or similar functionality from your testing library of choice.

     InvocationTargetException expected =
         assertThrows(InvocationTargetException.class, () -> method.invoke(null));
     assertThat(expected).hasCauseThat().isInstanceOf(IOException.class);
     
    Author:
    Kurt Alfred Kluever
    • Constructor Detail

      • ThrowableSubject

        protected ThrowableSubject​(FailureMetadata metadata,
                                   @Nullable java.lang.Throwable throwable)
        Constructor for use by subclasses. If you want to create an instance of this class itself, call check(...).that(actual).
    • Method Detail

      • hasMessageThat

        public final StringSubject hasMessageThat()
        Returns a StringSubject to make assertions about the throwable's message.
      • hasCauseThat

        public final ThrowableSubject hasCauseThat()
        Returns a new ThrowableSubject that supports assertions on this throwable's direct cause. This method can be invoked repeatedly (e.g. assertThat(e).hasCauseThat().hasCauseThat().... to assert on a particular indirect cause.