org.springframework.batch.test
Class StepScopeTestExecutionListener

java.lang.Object
  extended by org.springframework.batch.test.StepScopeTestExecutionListener
All Implemented Interfaces:
org.springframework.test.context.TestExecutionListener

public class StepScopeTestExecutionListener
extends java.lang.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

Constructor Summary
StepScopeTestExecutionListener()
           
 
Method Summary
 void afterTestClass(org.springframework.test.context.TestContext testContext)
           
 void afterTestMethod(org.springframework.test.context.TestContext testContext)
           
 void beforeTestClass(org.springframework.test.context.TestContext testContext)
           
 void beforeTestMethod(org.springframework.test.context.TestContext testContext)
           
protected  StepExecution getStepExecution(org.springframework.test.context.TestContext testContext)
          Discover a StepExecution as a field in the test case or create one if none is available.
 void prepareTestInstance(org.springframework.test.context.TestContext testContext)
          Set up a StepExecution as a test context attribute.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StepScopeTestExecutionListener

public StepScopeTestExecutionListener()
Method Detail

prepareTestInstance

public void prepareTestInstance(org.springframework.test.context.TestContext testContext)
                         throws java.lang.Exception
Set up a StepExecution as a test context attribute.

Specified by:
prepareTestInstance in interface org.springframework.test.context.TestExecutionListener
Parameters:
testContext - the current test context
Throws:
java.lang.Exception - if there is a problem
See Also:
TestExecutionListener.prepareTestInstance(TestContext)

beforeTestMethod

public void beforeTestMethod(org.springframework.test.context.TestContext testContext)
                      throws java.lang.Exception
Specified by:
beforeTestMethod in interface org.springframework.test.context.TestExecutionListener
Parameters:
testContext - the current test context
Throws:
java.lang.Exception - if there is a problem
See Also:
TestExecutionListener.beforeTestMethod(TestContext)

afterTestMethod

public void afterTestMethod(org.springframework.test.context.TestContext testContext)
                     throws java.lang.Exception
Specified by:
afterTestMethod in interface org.springframework.test.context.TestExecutionListener
Parameters:
testContext - the current test context
Throws:
java.lang.Exception - if there is a problem
See Also:
TestExecutionListener.afterTestMethod(TestContext)

afterTestClass

public void afterTestClass(org.springframework.test.context.TestContext testContext)
                    throws java.lang.Exception
Throws:
java.lang.Exception

beforeTestClass

public void beforeTestClass(org.springframework.test.context.TestContext testContext)
                     throws java.lang.Exception
Throws:
java.lang.Exception

getStepExecution

protected StepExecution getStepExecution(org.springframework.test.context.TestContext testContext)
Discover a StepExecution as a field in the test case or create one if none is available.

Parameters:
testContext - the current test context
Returns:
a StepExecution


Copyright © 2011. All Rights Reserved.