Class ExpectFailure

  • All Implemented Interfaces:

    public final class ExpectFailure
    extends Object
    A utility for testing that assertions against a custom Subject fail when they should, plus a utility to assert about parts of the resulting failure messages.


       AssertionError failure =
           expectFailure(whenTesting -> whenTesting.that(cancelButton).isVisible());
       assertThat(failure).factKeys().containsExactly("expected to be visible");
     private static AssertionError expectFailure(
         ExpectFailure.SimpleSubjectBuilderCallback<UiElementSubject, UiElement> assertionCallback) {
       return ExpectFailure.expectFailureAbout(uiElements(), assertionCallback);
    Or, if you can't use lambdas:
     @Rule public final ExpectFailure expectFailure = new ExpectFailure();
         assertThat(failure).factKeys().containsExactly("expected to be visible");

    ExpectFailure is similar to JUnit's assertThrows (JUnit 4, JUnit 5). We recommend it over assertThrows when you're testing a Truth subject because it also checks that the assertion you're testing uses the supplied FailureStrategy and calls only once.