Class 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, Chris Schaefer
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidafterTestClass​(org.springframework.test.context.TestContext testContext) 
      voidafterTestMethod​(org.springframework.test.context.TestContext testContext) 
      voidbeforeTestClass​(org.springframework.test.context.TestContext testContext) 
      voidbeforeTestMethod​(org.springframework.test.context.TestContext testContext) 
      protected StepExecutiongetStepExecution​(org.springframework.test.context.TestContext testContext)
      Discover a StepExecution as a field in the test case or create one if none is available.
      voidprepareTestInstance​(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
      • Methods inherited from interface org.springframework.test.context.TestExecutionListener

        afterTestExecution, beforeTestExecution
    • 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
        Specified by:
        afterTestClass in interface org.springframework.test.context.TestExecutionListener
        Throws:
        java.lang.Exception
      • beforeTestClass

        public void beforeTestClass​(org.springframework.test.context.TestContext testContext)
                             throws java.lang.Exception
        Specified by:
        beforeTestClass in interface org.springframework.test.context.TestExecutionListener
        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