Class JobScopeTestExecutionListener

  • All Implemented Interfaces:
    org.springframework.test.context.TestExecutionListener

    public class JobScopeTestExecutionListener
    extends java.lang.Object
    implements org.springframework.test.context.TestExecutionListener
    A TestExecutionListener that sets up job-scope context for dependency injection into unit tests. A JobContext 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 JobExecution 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, JobScopeTestExecutionListener.class })
     @RunWith(SpringJUnit4ClassRunner.class)
     public class JobScopeTestExecutionListenerIntegrationTests {
     
            // A job-scoped dependency configured in the ApplicationContext
            @Autowired
            private ItemReader<String> reader;
     
            public JobExecution getJobExecution() {
                    JobExecution execution = MetaDataInstanceFactory.createJobExecution();
                    execution.getExecutionContext().putString("foo", "bar");
                    return execution;
            }
     
            @Test
            public void testJobScopedReader() {
                    // Job context is active here so the reader can be used,
                    // and the job execution context will contain foo=bar...
                    assertNotNull(reader.read());
            }
     
     }
     
    Author:
    Dave Syer, Jimmy Praet
    • 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 JobExecutiongetJobExecution​(org.springframework.test.context.TestContext testContext)
      Discover a JobExecution as a field in the test case or create one if none is available.
      voidprepareTestInstance​(org.springframework.test.context.TestContext testContext)
      Set up a JobExecution 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

      • JobScopeTestExecutionListener

        public JobScopeTestExecutionListener()
    • Method Detail

      • prepareTestInstance

        public void prepareTestInstance​(org.springframework.test.context.TestContext testContext)
                                 throws java.lang.Exception
        Set up a JobExecution 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
      • getJobExecution

        protected JobExecution getJobExecution​(org.springframework.test.context.TestContext testContext)
        Discover a JobExecution as a field in the test case or create one if none is available.
        Parameters:
        testContext - the current test context
        Returns:
        a JobExecution