TestInstanceFactory defines the API for Extensions that wish to create test instances.
Common use cases include creating test instances with special construction requirements or acquiring the test instance from a dependency injection framework.
Extensions that implement TestInstanceFactory must be registered
at the class level.
Only one TestInstanceFactory is allowed to be registered for any
given test class. Registering multiple factories for any single test class
will result in an exception being thrown for all tests in that class, in any
subclass, and in any nested class. Note that any TestInstanceFactory
registered in a superclass or
enclosing class (i.e., in the case of
a @Nested test class) is inherited. It is therefore the
user's responsibility to ensure that only a single TestInstanceFactory
is registered for any specific test class.
Consult the documentation in Extension for details on
constructor requirements.
ExtensionContext ScopeAs of JUnit Jupiter 5.12, this API participates in the
TestInstantiationAwareExtension contract. Implementations of this API
may therefore choose to override
getTestInstantiationExtensionContextScope(ExtensionContext) to require a
test-method scoped ExtensionContext. See
createTestInstance(TestInstanceFactoryContext, ExtensionContext) for
further details.
createTestInstance(TestInstanceFactoryContext, ExtensionContext), TestInstanceFactoryContext, TestInstancePostProcessor, TestInstancePreDestroyCallback, ParameterResolver
| Modifier and Type | Method and Description |
|---|---|
| public Object | Returns: the test instance; nevernullthe context for the test class to be instantiated;
never factoryContext, ExtensionContext nullthe current extension context; never extensionContext)nullCallback for creating a test instance for the supplied context. |
| createTestInstance | back to summary |
|---|---|
| public Object createTestInstance(TestInstanceFactoryContext factoryContext, ExtensionContext extensionContext) throws TestInstantiationException Callback for creating a test instance for the supplied context. By default, the supplied Note the
| |