@FunctionalInterface @API(status=EXPERIMENTAL, since="5.3") public interface TestInstanceFactory extends Extension
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.
Modifier and Type | Method and Description |
---|---|
Object |
createTestInstance(TestInstanceFactoryContext factoryContext,
ExtensionContext extensionContext)
Callback for creating a test instance for the supplied context.
|
Object createTestInstance(TestInstanceFactoryContext factoryContext, ExtensionContext extensionContext) throws TestInstantiationException
Note: the ExtensionContext
supplied to a
TestInstanceFactory
will always return an empty
Optional
value from
getTestInstance()
since the
test instance cannot exist before it has been created by a
TestInstanceFactory
or the framework itself.
factoryContext
- the context for the test class to be instantiated;
never null
extensionContext
- the current extension context; never null
null
TestInstantiationException
- if an error occurs while creating the
test instanceCopyright © 2024. All rights reserved.