Spring提供了使用註釋以特定間隔計劃和執行任務的可能性。 @Scheduled
測試@春季計劃
有沒有一種方便的方法來單元測試這種行爲?
當然我可以自己調用bean的方法,但是我想確保我不會遇到類似multiple executions due to misconfiguration等問題。
其他框架提供了自己快速轉發時間的可能性。一個例子是Activiti,您可以撥打
org.activiti.engine.impl.util.ClockUtil.setCurrentTime(date)
快速轉發框架使用的時間。
在春天有什麼可比的嗎?
從本質上講就是我想要做的就是這樣的事情在一個單元測試(使用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)));
}