Interface TestTemplateInvocationContextProvider
- All Superinterfaces:
Extension
TestTemplateInvocationContextProvider
defines the API for
Extensions
that wish to provide one or multiple contexts
for the invocation of a
@TestTemplate
method.
This extension point makes it possible to execute a test template in different contexts — for example, with different parameters, by preparing the test class instance differently, or multiple times without modifying the context.
This interface defines two methods: supportsTestTemplate(org.junit.jupiter.api.extension.ExtensionContext)
and
provideTestTemplateInvocationContexts(org.junit.jupiter.api.extension.ExtensionContext)
. The former is called by the
framework to determine whether this extension wants to act on a test template
that is about to be executed. If so, the latter is called and must return a
Stream
of TestTemplateInvocationContext
instances. Otherwise,
this provider is ignored for the execution of the current test template.
A provider that has returned true
from its supportsTestTemplate(org.junit.jupiter.api.extension.ExtensionContext)
method is called active. When multiple providers are active for a
test template method, the Streams
returned by their
provideTestTemplateInvocationContexts(org.junit.jupiter.api.extension.ExtensionContext)
methods will be chained, and
the test template method will be invoked using the contexts of all active
providers.
Constructor Requirements
Consult the documentation in Extension
for details on
constructor requirements.
- Since:
- 5.0
- See Also:
TestTemplate
,TestTemplateInvocationContext
-
Method Summary
Modifier and TypeMethodDescriptionProvide invocation contexts for the test template method represented by the suppliedcontext
.boolean
supportsTestTemplate(ExtensionContext context)
Determine if this provider supports providing invocation contexts for the test template method represented by the suppliedcontext
.
-
Method Details
-
supportsTestTemplate
Determine if this provider supports providing invocation contexts for the test template method represented by the suppliedcontext
.- Parameters:
context
- the extension context for the test template method about to be invoked; nevernull
- Returns:
true
if this provider can provide invocation contexts- See Also:
provideTestTemplateInvocationContexts(org.junit.jupiter.api.extension.ExtensionContext)
,ExtensionContext
-
provideTestTemplateInvocationContexts
Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts(ExtensionContext context)Provide invocation contexts for the test template method represented by the suppliedcontext
.This method is only called by the framework if
supportsTestTemplate(org.junit.jupiter.api.extension.ExtensionContext)
previously returnedtrue
for the sameExtensionContext
; this method is allowed to return an emptyStream
but notnull
.The returned
Stream
will be properly closed by callingBaseStream.close()
, making it safe to use a resource such asFiles.lines()
.- Parameters:
context
- the extension context for the test template method about to be invoked; nevernull
- Returns:
- a
Stream
ofTestTemplateInvocationContext
instances for the invocation of the test template method; nevernull
- See Also:
supportsTestTemplate(org.junit.jupiter.api.extension.ExtensionContext)
,ExtensionContext
-