Class ExceptionCollector
ExceptionCollector
is a test utility for executing code blocks,
collecting exceptions, and generating a single AssertionError
containing any exceptions encountered as suppressed exceptions.
This utility is intended to support soft assertion use cases
similar to the SoftAssertions
support in AssertJ and the
assertAll()
support in JUnit Jupiter.
- Since:
- 5.3.10
- Author:
- Sam Brannen
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Executable
is a functional interface that can be used to implement any generic block of code that potentially throws aThrowable
. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Assert that thisExceptionCollector
does not contain any exceptions.void
execute
(ExceptionCollector.Executable executable) Execute the suppliedExceptionCollector.Executable
and track any exception thrown.Get the list of exceptions encountered inexecute(Executable)
.
-
Constructor Details
-
ExceptionCollector
public ExceptionCollector()
-
-
Method Details
-
execute
Execute the suppliedExceptionCollector.Executable
and track any exception thrown.- Parameters:
executable
- theExecutable
to execute- See Also:
-
getExceptions
Get the list of exceptions encountered inexecute(Executable)
.- Returns:
- an unmodifiable copy of the list of exceptions, potentially empty
- See Also:
-
assertEmpty
Assert that thisExceptionCollector
does not contain any exceptions.If this collector is empty, this method is effectively a no-op.
If this collector contains a single
Error
orException
, this method rethrows the error or exception.If this collector contains a single
Throwable
, this method throws anAssertionError
with the error message of theThrowable
and with theThrowable
as the cause.If this collector contains multiple exceptions, this method throws an
AssertionError
whose message is "Multiple Exceptions (#):" followed by a new line with the error message of each exception separated by a new line, with#
replaced with the number of exceptions present. In addition, each exception will be added to theAssertionError
as asuppressed exception
.- Throws:
Exception
- See Also:
-