public interface FailureStrategyDefines what to do when a check fails.
This type does not appear directly in a fluent assertion chain, but you choose a
FailureStrategyby choosing which method to call at the beginning of the chain.
Built-in strategies include:
- (and some useful only to people who implement custom subjects, described below)
For more information about the fluent chain, see this FAQ entry.
For people extending Truth
FailureStrategyimplementations are unusual. If you think you need one, consider these alternatives:
- To test a custom subject, use
- To create subjects for other objects related to your actual value (for chained assertions),
Subject.check(String, Object...), which preserves the existing
FailureStrategyand other context.
- To return a no-op subject after a previous assertion has failed (for chained assertions),
When you really do need to create your own strategy, rather than expose your
FailureStrategyinstance to users, expose a
void fail(AssertionError failure)Handles a failure. The parameter is an
AssertionErroror subclass thereof, and it contains information about the failure, which may include:
- actual and expected values:
- stack trace:
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.