【发布时间】:2020-07-28 09:23:12
【问题描述】:
我正在@SpringBootTest 中运行批处理作业:
@Autowired
private JobRunner jobRunner;
jobRunner.runNowForTests("X_Job");
我有一个监听器在X_Job 完成后运行Y_Job:
class JobFinishedEventListener {
@Autowired
private JobRunner jobRunner;
@Override
public void afterJob(JobExecution jobExecution) {
jobRunner.runNow("Y_Job");
}
}
我的@Test 函数正在检查X_Job 是否成功完成,如下所示:
assertJobStatus(X_Job_Execution, COMPLETED);
但是,我不知道如何测试 Y_Job 是否成功运行,因为我没有对其执行的参考。我怎样才能做到这一点?
【问题讨论】:
-
@MahmoudBenHassine 嗯,没错。但我还是想知道要做到这一点,这是我没有写的代码。比如,也许有办法让所有作业都在当前上下文中运行?
-
I have a listener that runs Y_Job after X_Job finishes: 有什么理由这样做而不是依次运行两个作业?我不认为在当前作业的 listener#afterJob 中运行下一个作业是可行的方法,但我可能会遗漏一些东西。 -
好的,我会添加一个答案。
标签: java spring-boot junit spring-batch