public class DefaultAssertionErrorCollector extends Object implements AssertionErrorCollector
| Constructor and Description |
|---|
DefaultAssertionErrorCollector() |
| Modifier and Type | Method and Description |
|---|---|
List<AssertionError> |
assertionErrorsCollected()
Returns a list of soft assertions collected errors.
|
void |
collectAssertionError(AssertionError error)
This method can be used to collect soft assertion errors.
|
protected <T extends Throwable> |
decorateErrorsCollected(List<? extends T> errors)
Modifies collected errors.
|
Optional<AssertionErrorCollector> |
getDelegate() |
void |
setAfterAssertionErrorCollected(AfterAssertionErrorCollected afterAssertionErrorCollected)
Register a callback allowing to react after an
AssertionError is collected by the current soft assertion. |
void |
setDelegate(AssertionErrorCollector delegate)
Optionally sets a "delegate" collector into which the collected assertions will be deposited.
|
void |
succeeded()
Indicates/sets that the last assertion was a success.
|
boolean |
wasSuccess()
Returns the result of last soft assertion which can be used to decide what the next one should be.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitonAssertionErrorCollectedpublic void setDelegate(AssertionErrorCollector delegate)
AssertionErrorCollectorNote that if you set a delegate, this instance will no longer collect or report assertion errors itself but will forward them all to the delegate for collection.
setDelegate in interface AssertionErrorCollectordelegate - the AssertionErrorCollector to which the assertions will be forwarded.public Optional<AssertionErrorCollector> getDelegate()
getDelegate in interface AssertionErrorCollectorpublic void collectAssertionError(AssertionError error)
AssertionErrorCollector
To be able to react after an assertion error is collected, use AssertionErrorCollector.onAssertionErrorCollected(AssertionError).
collectAssertionError in interface AssertionErrorCollectorerror - the AssertionError to collect.public List<AssertionError> assertionErrorsCollected()
setDelegate(),
then this method will return the result of the delegate's assertErrorsCollected().assertionErrorsCollected in interface AssertionErrorCollectorpublic void setAfterAssertionErrorCollected(AfterAssertionErrorCollected afterAssertionErrorCollected)
AssertionError is collected by the current soft assertion.
The callback is an instance of AfterAssertionErrorCollected which can be expressed as lambda.
Example:
SoftAssertions softly = new SoftAssertions();
StringBuilder reportBuilder = new StringBuilder(format("Assertions report:%n"));
// register our callback
softly.setAfterAssertionErrorCollected(error -> reportBuilder.append(String.format("------------------%n%s%n", error.getMessage())));
// the AssertionError corresponding to the failing assertions are registered in the report
softly.assertThat("The Beatles").isEqualTo("The Rolling Stones");
softly.assertThat(123).isEqualTo(123)
.isEqualTo(456);
resulting reportBuilder:
Assertions report:
------------------
Expecting:
<"The Beatles">
to be equal to:
<"The Rolling Stones">
but was not.
------------------
Expecting:
<123>
to be equal to:
<456>
but was not.
Alternatively, if you have defined your own SoftAssertions subclass and inherited from AbstractSoftAssertions,
the only thing you have to do is to override AfterAssertionErrorCollected.onAssertionErrorCollected(AssertionError).
afterAssertionErrorCollected - the callback.public void succeeded()
AssertionErrorCollectorsucceeded in interface AssertionErrorCollectorpublic boolean wasSuccess()
AssertionErrorCollectorExample:
Person person = ...
SoftAssertions soft = new SoftAssertions();
if (soft.assertThat(person.getAddress()).isNotNull().wasSuccess()) {
soft.assertThat(person.getAddress().getStreet()).isNotNull();
}wasSuccess in interface AssertionErrorCollectorprotected <T extends Throwable> List<T> decorateErrorsCollected(List<? extends T> errors)
T - the supertype to use in the list return valueerrors - list of errors to decorateCopyright © 2025. All rights reserved.