点对点的批处理任务测试" class="reference-link">10.2 点对点的批处理任务测试

点对点的测试被定义为测试从开始到结束完整的运行一个批处理任务。它允许一个测试设置一个测试条件,执行任务,并且验证最后的结果。

在下面的这个例子中,这个批处理任务从数据库读取数据并且写入一个平面文件中。这个测试方法首先要建立数据库与测试数据。它清空CUSTOMER表然后往里面插入10条新的记录。测试然后启动任务使用launchJob()方法,这个launchJob()方法是由JobLauncherTestUtils类提供的。还提供工具类
launchJob(JobParameters)
,允许测试给特定的参数。launchJob()方法返回JobExecution对象有助于任务运行声明特定的信息,在这个实例中,这个测试证实任务的结束与状态”COMPLETED”.

  1. @RunWith(SpringJUnit4ClassRunner.class)
  2. @ContextConfiguration(locations = { "/simple-job-launcher-context.xml",
  3. "/jobs/skipSampleJob.xml" })
  4. public class SkipSampleFunctionalTests {
  5. @Autowired
  6. private JobLauncherTestUtils jobLauncherTestUtils;
  7. private SimpleJdbcTemplate simpleJdbcTemplate;
  8. @Autowired
  9. public void setDataSource(DataSource dataSource) {
  10. this.simpleJdbcTemplate = new SimpleJdbcTemplate(dataSource);
  11. }
  12. @Test
  13. public void testJob() throws Exception {
  14. simpleJdbcTemplate.update("delete from CUSTOMER");
  15. for (int i = 1; i <= 10; i++) {
  16. simpleJdbcTemplate.update("insert into CUSTOMER values (?, 0, ?, 100000)",
  17. i, "customer" + i);
  18. }
  19. JobExecution jobExecution = jobLauncherTestUtils.launchJob().getStatus();
  20. Assert.assertEquals("COMPLETED", jobExecution.getExitStatus());
  21. }
  22. }