Я бы переместил код, выполняемый задачей, в отдельный метод и протестировал бы его индивидуально без планирования / ожидания.
g Boot позволяет создавать фоновые «cron-подобные» задачи, например:
@Component
public class MyTask {
// Every hour on the hour
@Scheduled(cron = "0 0 0/1 1/1 * ? *")
public void doSomething() {
// blah whatever
}
}
Это делает автоматизированное тестирование интеграции немного сложным! Мне не нужно было проводить интеграционное тестирование, которое просто зависало в течение часа, ожидая, чтобы увидеть, что произойдет, когда моя задача будет выполняться в самый час. И при этом я не должен ждать, чтобы выполнить мой тест около часа, чтобы я мог подтвердить правильное поведение в самый час!
Есть ли способ сделать этоcron
значения настраиваются? Таким образом, если я хочу запустить свое приложение в «тестовом режиме», я мог бы запланироватьMyTask#doSomething()
метод запуска, скажем, каждые 30 секунд и т. д.