Я написал ниже задание SpringBatch, оно будет считывать данные из исходной таблицы, обрабатывать и записывать данные в целевую таблицу. Функциональность работает, как и ожидалось, но мне нужно написать контрольные примеры Junit для задания SpringBatch. Кто-нибудь может мне помочь, как написать тестовые случаи JUnit для задания SpringBatch?
Вот фрагмент кода
@Bean(name = Constant.CREATE_JOB)
public Job testJob() {
Job job = null;
try {
Flow flowOne = new FlowBuilder<SimpleFlow>(Constant.FLOW_ONE)
.start(truncateTableStep())
.on(Constant.FAILED)
.fail()
.from(truncateTableStep())
.on(Constant.COMPLETED)
.to(firstStep())
.next(secondStep())
.build();
Flow flowTwo = new FlowBuilder<SimpleFlow>(Constant.FLOW_TWO)
.start(thridStep())
.next(fourthStep()).build();
job = jobBuilderFactory.get(Constant.CREATE_JOB)
.listener(createJobListener)
.start(flowOne)
.split(new SimpleAsyncTaskExecutor())
.add(flowTwo)
.end()
.build();
} catch (Exception exception) {
log.error("Exception while building Create job.. {}", exception.toString());
}
return job;
}
@Bean
public Step firstStep() {
Step step = null;
try {
step = stepBuilderFactory.get(Constant.POPULATE_STEP)
.<InputModel, InputModel>chunk(Constant.CHUNK_SIZE_HUNDERED)
.reader(createJobReader.createReader())
.processor(createJobCommonStepProcessor)
.writer(testWriter.testWriter())
.faultTolerant().skipLimit(10).skip(Exception.class)
.retryLimit(3)
.retry(TransientDataAccessException.class)
.listener(retryListener).build();
} catch (final Exception exception) {
log.error("Exception in the populate first Step Create Job: {}",
exception.toString());
}
return step;
}
@Bean
public Step secondStep() {
........
}
@Bean
public Step thirdStep() {
........
}
@Bean
public Step fourthStep() {
........
}