Interface FailureStrategy

  • All Known Implementing Classes:
    Expect.ExpectationGatherer

    public interface FailureStrategy
    Defines what to do when a check fails.

    This type does not appear directly in a fluent assertion chain, but you choose a FailureStrategy by choosing which method to call at the beginning of the chain.

    Built-in strategies include:

    For more information about the fluent chain, see this FAQ entry.

    For people extending Truth

    Custom FailureStrategy implementations are unusual. If you think you need one, consider these alternatives:

    • To test a custom subject, use ExpectFailure.
    • To create subjects for other objects related to your actual value (for chained assertions), use Subject.check(String, Object...), which preserves the existing FailureStrategy and other context.
    • To return a no-op subject after a previous assertion has failed (for chained assertions), use Subject.ignoreCheck()

    When you really do need to create your own strategy, rather than expose your FailureStrategy instance to users, expose a StandardSubjectBuilder instance using StandardSubjectBuilder.forCustomFailureStrategy(STRATEGY).

    • Method Detail

      • fail

        void fail​(java.lang.AssertionError failure)
        Handles a failure. The parameter is an AssertionError or subclass thereof, and it contains information about the failure, which may include:
        • message: getMessage()
        • cause: getCause()
        • actual and expected values: ComparisonFailure.getActual(), ComparisonFailure.getExpected()
        • stack trace: Throwable.getStackTrace()

        We encourage implementations to record as much of this information as practical in the exceptions they may throw or the other records they may make.