Package org.junit.jupiter.api.extension
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:
AbstractOsBasedExecutionCondition
,AbstractRepeatableAnnotationCondition
,BooleanExecutionCondition
,DisabledCondition
,DisabledForJreRangeCondition
,DisabledIfCondition
,DisabledIfEnvironmentVariableCondition
,DisabledIfSystemPropertyCondition
,DisabledOnJreCondition
,DisabledOnOsCondition
,EnabledForJreRangeCondition
,EnabledIfCondition
,EnabledIfEnvironmentVariableCondition
,EnabledIfSystemPropertyCondition
,EnabledOnJreCondition
,EnabledOnOsCondition
,ExpectedExceptionSupport
,ExternalResourceSupport
,IgnoreCondition
,MethodBasedCondition
,ParameterizedTestExtension
,ParameterizedTestParameterResolver
,RepeatedTestExtension
,RepetitionInfoParameterResolver
,TempDirectory
,TestInfoParameterResolver
,TestReporterParameterResolver
,TestRuleSupport
,TimeoutExtension
,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.
- Since:
- 5.0