Mùa xuân cung cấp khả năng lên lịch và thực hiện các tác vụ tại các khoảng thời gian cụ thể bằng cách sử dụng chú thích, ví dụ: @Scheduled
Thử nghiệm @Scheduled vào mùa xuân
Có cách nào thuận tiện để đơn vị kiểm tra hành vi này không?
Tất nhiên tôi có thể gọi phương pháp của hạt mình, nhưng tôi muốn đảm bảo rằng tôi không gặp phải các sự cố như multiple executions due to misconfiguration và cứ tiếp tục như vậy.
Các khung công tác khác cung cấp khả năng tự chuyển tiếp nhanh thời gian. Một ví dụ là Activiti nơi bạn có thể gọi
org.activiti.engine.impl.util.ClockUtil.setCurrentTime(date)
để tua nhanh thời gian được khung sử dụng.
Có điều gì có thể so sánh trong mùa xuân không?
Về cơ bản những gì tôi muốn làm là một cái gì đó như thế này trong một thử nghiệm đơn vị (chạy bằng SpringJUnit4ClassRunner
)
@Test public void testTaskScheduling() {
assertThat(someOtherBean.getSomeProperty(), is(equalTo(whatIinitiallyExpect)));
SpringClockUtil.setDate(dateInTwoHours)// This is what I am missing
SpringTaskExecutor.executeAllScheduledTasks() // Also missing
assertThat(someOtherBean.getSomeProperty(), is(equalTo(whatIexpectNow)));
}