Interface TestTemplateInvocationContextProvider

All Superinterfaces:
Extension

@API(status=STABLE, since="5.0") public interface TestTemplateInvocationContextProvider extends 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 main 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.

An active provider may return zero invocation contexts from its provideTestTemplateInvocationContexts(org.junit.jupiter.api.extension.ExtensionContext) method if it overrides mayReturnZeroTestTemplateInvocationContexts(org.junit.jupiter.api.extension.ExtensionContext) to return true.

Constructor Requirements

Consult the documentation in Extension for details on constructor requirements.

Since:
5.0
See Also: