java - 测试 Quartz CronTrigger 触发器

标签 java unit-testing spring quartz-scheduler

假设我有一个 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/

相关文章:

java - 我可以使用 ScriptableObject 在 Java 中构建 Rhino JavaAdapter 吗?

java - 您能否在不显式列出它们的情况下从命令行运行包中的所有 JUnit 测试?

java - Spring 不断返回字符串而不是 jsp/html 内容

java - 如何判断哪些 spring-boot 自动配置器已被激活?

java - 在java中等于和==行为

java - 当我在选择 0 索引的情况下删除和添加时,Swing JList 卡住

java - 错误代码的枚举

unit-testing - 错误 : Expected one matching request for criteria "Match by function: ", 未找到

unit-testing - 将 Specflow 场景用于集成测试和单元测试

java - 如何使用 Spring MVC 的单表继承获取子类属性