Package org.springframework.batch.test
Class StepScopeTestExecutionListener
java.lang.Object
org.springframework.batch.test.StepScopeTestExecutionListener
- All Implemented Interfaces:
org.springframework.test.context.TestExecutionListener
public class StepScopeTestExecutionListener
extends Object
implements org.springframework.test.context.TestExecutionListener
A
TestExecutionListener
that sets up step-scope context for dependency
injection into unit tests. A StepContext
will be created for the duration of a
test method and made available to any dependencies that are injected. The default
behaviour is just to create a StepExecution
with fixed properties.
Alternatively it can be provided by the test case as a factory methods returning the
correct type. Example:
@ContextConfiguration @TestExecutionListeners( { DependencyInjectionTestExecutionListener.class, StepScopeTestExecutionListener.class }) @RunWith(SpringJUnit4ClassRunner.class) public class StepScopeTestExecutionListenerIntegrationTests { // A step-scoped dependency configured in the ApplicationContext @Autowired private ItemReader<String> reader; public StepExecution getStepExecution() { StepExecution execution = MetaDataInstanceFactory.createStepExecution(); execution.getExecutionContext().putString("foo", "bar"); return execution; } @Test public void testStepScopedReader() { // Step context is active here so the reader can be used, // and the step execution context will contain foo=bar... assertNotNull(reader.read()); } }
- Author:
- Dave Syer, Chris Schaefer, Mahmoud Ben Hassine
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
afterTestMethod
(org.springframework.test.context.TestContext testContext) void
beforeTestMethod
(org.springframework.test.context.TestContext testContext) protected StepExecution
getStepExecution
(org.springframework.test.context.TestContext testContext) Discover aStepExecution
as a field in the test case or create one if none is available.void
prepareTestInstance
(org.springframework.test.context.TestContext testContext) Set up aStepExecution
as a test context attribute.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.test.context.TestExecutionListener
afterTestClass, afterTestExecution, beforeTestClass, beforeTestExecution
-
Constructor Details
-
StepScopeTestExecutionListener
public StepScopeTestExecutionListener()
-
-
Method Details
-
prepareTestInstance
public void prepareTestInstance(org.springframework.test.context.TestContext testContext) Set up aStepExecution
as a test context attribute.- Specified by:
prepareTestInstance
in interfaceorg.springframework.test.context.TestExecutionListener
- Parameters:
testContext
- the current test context- See Also:
-
TestExecutionListener.prepareTestInstance(TestContext)
-
beforeTestMethod
public void beforeTestMethod(org.springframework.test.context.TestContext testContext) - Specified by:
beforeTestMethod
in interfaceorg.springframework.test.context.TestExecutionListener
- Parameters:
testContext
- the current test context- See Also:
-
TestExecutionListener.beforeTestMethod(TestContext)
-
afterTestMethod
public void afterTestMethod(org.springframework.test.context.TestContext testContext) - Specified by:
afterTestMethod
in interfaceorg.springframework.test.context.TestExecutionListener
- Parameters:
testContext
- the current test context- See Also:
-
TestExecutionListener.afterTestMethod(TestContext)
-
getStepExecution
Discover aStepExecution
as a field in the test case or create one if none is available.- Parameters:
testContext
- the current test context- Returns:
- a
StepExecution
-