测试 Java Spring @Scheduled 功能 [重复]
Posted
技术标签:
【中文标题】测试 Java Spring @Scheduled 功能 [重复]【英文标题】:Testing Java Spring @Scheduled functionality [duplicate] 【发布时间】:2020-05-13 20:52:05 【问题描述】:我有如下的 cron 调度程序:
@Scheduled(cron = "0 0 1 * * *")
@SchedulerLock(name = "PT20M")
public void schedulerSubscriptionsUpdate()
我正在尝试测试此预定方法的全部功能 - 某种集成测试(包括方法执行的正确性 - 时间)。 你有什么建议我该怎么做?
【问题讨论】:
这能回答你的问题吗? How to test Spring @Scheduled baeldung.com/spring-testing-scheduled-annotation @nodlaw 你解决了吗? 【参考方案1】:您可以使用为此目的提供的 Awaility 库:
使用 maven 添加该库:
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>3.1.6</version>
<scope>test</scope>
</dependency>
我们可以使用 Awaitility DSL 使我们的测试更具声明性,例如:
@SpringJUnitConfig(ScheduledConfig.class)
public class ScheduledAwaitilityIntegrationTest
@SpyBean
private Counter counter;
@Test
public void whenWaitOneSecond_thenScheduledIsCalledAtLeastTenTimes()
await()
.atMost(Duration.ONE_SECOND)
.untilAsserted(() -> verify(counter, atLeast(10)).scheduled());
来源 - baeldung.com/spring-testing-scheduled-annotation
【讨论】:
这是来自baeldung.com/spring-testing-scheduled-annotation的复制粘贴 @elmigue017 - 有时我们必须这样做,这很糟糕, @elmigue017 - 在答案中添加了来源以上是关于测试 Java Spring @Scheduled 功能 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
java Spring Boot @Scheduled + Spring Security @PreAuthorize = RunAs
java sprinng @Scheduled 定时器注解问题
spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java
Java Spring @Scheduled 定时任务crontab表达式设置