Interface TestInstancePostProcessor
- All Superinterfaces:
Extension
,TestInstantiationAwareExtension
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
TestInstancePostProcessor
defines the API for Extensions
that wish to post-process test instances.
Common use cases include injecting dependencies into the test instance, invoking custom initialization methods on the test instance, etc.
Extensions that implement TestInstancePostProcessor
must be
registered at the class level, declaratively via a
field of the test class, or programmatically
via a static field of the test class.
Constructor Requirements
Consult the documentation in Extension
for details on
constructor requirements.
- Since:
- 5.0
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.junit.jupiter.api.extension.TestInstantiationAwareExtension
TestInstantiationAwareExtension.ExtensionContextScope
-
Method Summary
Modifier and TypeMethodDescriptionvoid
postProcessTestInstance
(Object testInstance, ExtensionContext context) Callback for post-processing the supplied test instance.Methods inherited from interface org.junit.jupiter.api.extension.TestInstantiationAwareExtension
getTestInstantiationExtensionContextScope
-
Method Details
-
postProcessTestInstance
Callback for post-processing the supplied test instance.By default, the supplied
ExtensionContext
represents the test class that's being post-processed. Extensions may overrideTestInstantiationAwareExtension.getTestInstantiationExtensionContextScope(org.junit.jupiter.api.extension.ExtensionContext)
to returnTEST_METHOD
in order to change the scope of theExtensionContext
to the test method, unless thePER_CLASS
lifecycle is used. Changing the scope makes test-specific data available to the implementation of this method and allows keeping state on the test level by using the providedStore
instance.Note: the
ExtensionContext
supplied to aTestInstancePostProcessor
will always return an emptyOptional
value fromgetTestInstance()
. ATestInstancePostProcessor
should therefore only attempt to process the suppliedtestInstance
.- Parameters:
testInstance
- the instance to post-process; nevernull
context
- the current extension context; nevernull
- Throws:
Exception
-