Interface Extension

All Known Subinterfaces:
AfterAllCallback, AfterEachCallback, AfterEachMethodAdapter, AfterTestExecutionCallback, BeforeAllCallback, BeforeEachCallback, BeforeEachMethodAdapter, BeforeTestExecutionCallback, ExecutionCondition, InvocationInterceptor, LifecycleMethodExecutionExceptionHandler, ParameterResolver, TestExecutionExceptionHandler, TestInstanceFactory, TestInstancePostProcessor, TestInstancePreConstructCallback, TestInstancePreDestroyCallback, TestTemplateInvocationContextProvider, TestWatcher
All Known Implementing Classes:
ExpectedExceptionSupport, ExternalResourceSupport, IgnoreCondition, TypeBasedParameterResolver, VerifierSupport

@API(status=STABLE, since="5.0") public interface Extension
Marker interface for all extensions.

An Extension can be registered declaratively via @ExtendWith, programmatically via @RegisterExtension, or automatically via the ServiceLoader mechanism. For details on the latter, consult the User Guide.

Constructor Requirements

Extension implementations must have a default constructor if registered via @ExtendWith or the ServiceLoader. When registered via @ExtendWith the default constructor is not required to be public. When registered via the ServiceLoader the default constructor must be public. When registered via @RegisterExtension the extension's constructors typically must be public unless the extension provides static factory methods or a builder API as an alternative to constructors.