Spring bietet die Möglichkeit, Aufgaben in bestimmten Intervallen zu planen und auszuführen, indem Anmerkungen verwendet werden, z. @Scheduled
Testen @Scheduled im Frühjahr
Gibt es eine bequeme Möglichkeit, dieses Verhalten zu testen?
Natürlich könnte ich die Methode der Bohne selbst nennen, aber ich möchte sicherstellen, dass ich nicht auf Probleme wie multiple executions due to misconfiguration und so weiter stoßen.
Andere Frameworks bieten die Möglichkeit, die Zeit selbst zu beschleunigen. Ein Beispiel dafür ist Activiti wo Sie
org.activiti.engine.impl.util.ClockUtil.setCurrentTime(date)
die Zeit vom Framework verwendet, um schnell vorwärts nennen.
Gibt es im Frühling etwas Vergleichbares?
Im Wesentlichen ist das, was ich tun möchte, so etwas wie dies in einem Unit-Test (Lauf mit 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)));
}