2016-08-09 2 views
0

J'ai un ScheduledExecutorService configuré pour mettre à jour certains objets toutes les quelques minutes.Test du code dans un ScheduledExecutorService

J'essaye de tester si la mise à jour se produit ou non et bien sûr certains cas de bords.

scheduler.scheduleAtFixedRate(()-> { 
    //Code to update objects 
}, 0, 4, TimeUnit.MINUTES); 

Je me demandais comment pourrais-je aller sur les tests et se moquant peut-être ce donc je ne pas dépendre de Thread.sleep

Répondre

0

Notez la méthode scheduleAtFixedRate retourne un Future, vous ne devriez pas utiliser Thread.sleep , mais l'une des méthodes Future#get.

Une autre suggestion consiste à remplacer la temporisation codée en dur (4 minutes) par un paramètre configurable, ce qui vous permet de la remplacer par un test.