public class SpringExtension extends Object implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.TestInstancePostProcessor, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeTestExecutionCallback, org.junit.jupiter.api.extension.AfterTestExecutionCallback, org.junit.jupiter.api.extension.ParameterResolver
SpringExtension integrates the Spring TestContext Framework
into JUnit 5's Jupiter programming model.
To use this extension, simply annotate a JUnit Jupiter based test class with
@ExtendWith(SpringExtension.class), @SpringJUnitConfig, or
@SpringJUnitWebConfig.
EnabledIf,
DisabledIf,
SpringJUnitConfig,
SpringJUnitWebConfig,
TestContextManager| Constructor and Description |
|---|
SpringExtension() |
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
TestContextManager.beforeTestClass().beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallbackExceptionpublic void afterAll(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
TestContextManager.afterTestClass().afterAll in interface org.junit.jupiter.api.extension.AfterAllCallbackExceptionpublic void postProcessTestInstance(Object testInstance, org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
TestContextManager.prepareTestInstance(java.lang.Object).
As of Spring Framework 5.3.2, this method also validates that test
methods and test lifecycle methods are not annotated with
@Autowired.
postProcessTestInstance in interface org.junit.jupiter.api.extension.TestInstancePostProcessorExceptionpublic void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallbackExceptionpublic void beforeTestExecution(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
beforeTestExecution in interface org.junit.jupiter.api.extension.BeforeTestExecutionCallbackExceptionpublic void afterTestExecution(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
TestContextManager.afterTestExecution(java.lang.Object, java.lang.reflect.Method, java.lang.Throwable).afterTestExecution in interface org.junit.jupiter.api.extension.AfterTestExecutionCallbackExceptionpublic void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
TestContextManager.afterTestMethod(java.lang.Object, java.lang.reflect.Method, java.lang.Throwable).afterEach in interface org.junit.jupiter.api.extension.AfterEachCallbackExceptionpublic boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
Parameter in the supplied ParameterContext
should be autowired from the test's ApplicationContext.
A parameter is considered to be autowirable if one of the following
conditions is true.
Constructor and
TestConstructorUtils.isAutowirableConstructor(Constructor, Class, PropertyProvider)
returns true. Note that isAutowirableConstructor() will be
invoked with a fallback PropertyProvider that delegates its lookup
to ExtensionContext.getConfigurationParameter(String).ApplicationContext or a sub-type thereof.ApplicationEvents or a sub-type thereof.ParameterResolutionDelegate.isAutowirable(java.lang.reflect.Parameter, int) returns true.WARNING: If a test class Constructor is annotated
with @Autowired or automatically autowirable (see TestConstructor),
Spring will assume the responsibility for resolving all parameters in the
constructor. Consequently, no other registered ParameterResolver
will be able to resolve parameters.
supportsParameter in interface org.junit.jupiter.api.extension.ParameterResolverresolveParameter(org.junit.jupiter.api.extension.ParameterContext, org.junit.jupiter.api.extension.ExtensionContext),
TestConstructorUtils.isAutowirableConstructor(Constructor, Class),
ParameterResolutionDelegate.isAutowirable(java.lang.reflect.Parameter, int)@Nullable public Object resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
Parameter in the supplied ParameterContext by
retrieving the corresponding dependency from the test's ApplicationContext.
resolveParameter in interface org.junit.jupiter.api.extension.ParameterResolversupportsParameter(org.junit.jupiter.api.extension.ParameterContext, org.junit.jupiter.api.extension.ExtensionContext),
ParameterResolutionDelegate.resolveDependency(java.lang.reflect.Parameter, int, java.lang.Class<?>, org.springframework.beans.factory.config.AutowireCapableBeanFactory)public static ApplicationContext getApplicationContext(org.junit.jupiter.api.extension.ExtensionContext context)
ApplicationContext associated with the supplied ExtensionContext.context - the current ExtensionContext (never null)IllegalStateException - if an error occurs while retrieving the application contextTestContext.getApplicationContext()