public interface AssertionErrorCollector extends AfterAssertionErrorCollected
| Modifier and Type | Method and Description |
|---|---|
List<AssertionError> |
assertionErrorsCollected() |
void |
collectAssertionError(AssertionError error)
This method can be used to collect soft assertion errors.
|
default Optional<AssertionErrorCollector> |
getDelegate() |
default void |
onAssertionErrorCollected(AssertionError assertionError)
This method is called after each
AssertionError is collected by soft assertions
(you can't prevent the error to be collected). |
default 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.
|
default void setDelegate(AssertionErrorCollector delegate)
Note 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.
delegate - the AssertionErrorCollector to which the assertions will be forwarded.default Optional<AssertionErrorCollector> getDelegate()
void collectAssertionError(AssertionError error)
To be able to react after an assertion error is collected, use onAssertionErrorCollected(AssertionError).
error - the AssertionError to collect.List<AssertionError> assertionErrorsCollected()
default void onAssertionErrorCollected(AssertionError assertionError)
AfterAssertionErrorCollectedAssertionError is collected by soft assertions
(you can't prevent the error to be collected).
SoftAssertionsProvider provides a do-nothing implementation which you can override in your own
custom soft assertions class.
Note that your custom soft assertions class must extend AbstractSoftAssertions as this is where the actual soft
assertion errors collection is implemented.
If you just use the standard soft assertions classes provided by AssertJ, you can register your callback with
DefaultAssertionErrorCollector.setAfterAssertionErrorCollected(AfterAssertionErrorCollected).
Example with custom soft assertions:
class TolkienSoftAssertions extends SoftAssertions {
public TolkienHeroesAssert assertThat(TolkienHero actual) {
return proxy(TolkienHeroesAssert.class, TolkienHero.class, actual);
}
@Override
public void onAssertionErrorCollected(AssertionError assertionError) {
System.out.println(assertionError);
}
}
TolkienSoftAssertions softly = new TolkienSoftAssertions();
TolkienCharacter frodo = TolkienCharacter.of("Frodo", 33, HOBBIT);
// the AssertionError corresponding to this failing assertion is printed to the console.
softly.assertThat(frodo).hasName("Bilbo");
Example with standard soft assertions:
SoftAssertions softly = new SoftAssertions();
// register our callback
softly.setAfterAssertionErrorCollected(error -> System.out.println(error));
// the AssertionError corresponding to this failing assertion is printed to the console.
softly.assertThat("The Beatles").isEqualTo("The Rolling Stones");onAssertionErrorCollected in interface AfterAssertionErrorCollectedassertionError - the collected AssertionError.void succeeded()
boolean wasSuccess()
Example:
Person person = ...
SoftAssertions soft = new SoftAssertions();
if (soft.assertThat(person.getAddress()).isNotNull().wasSuccess()) {
soft.assertThat(person.getAddress().getStreet()).isNotNull();
}Copyright © 2025. All rights reserved.