Class ThrowableSubject

java.lang.Object
com.google.common.truth.Subject
com.google.common.truth.ThrowableSubject
Direct Known Subclasses:
TruthFailureSubject

public class ThrowableSubject extends Subject
A subject for Throwable values.

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 Details

    • ThrowableSubject

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

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