假设我有一个 CronTriggerBean
类似于
<bean id="midMonthCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="reminderJobDetail" />
<property name="cronExpression" value="0 0 6 15W * ?" />
</bean>
测试该 bean 是否会在其指定日期(即最接近每月 15 日的工作日早上 6 点)实际触发的最佳方法是什么?
更新:这应该是一个单元测试,所以我不会启动虚拟机或更改系统时间。
最佳答案
首先,测试 CronTriggerBean
本身没有意义。它是 spring 框架的一部分,并且已经过测试。
更好的测试可能是测试您的 cron 表达式是否符合您的预期。这里的一种选择是使用 Quartz 的 CronExpression
类。给定一个 CronExpression
对象,您可以调用 getNextValidTimeAfter(Date)
,它会返回给定 Date 之后的下一次触发表达式的时间。
关于java - 测试 Quartz CronTrigger 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1060567/