Van egy módja annak, egység teszt ScheduledExecutorService.scheduleAtFixedRate használata nélkül Thread.sleep?

szavazat
0

Szeretnék egység teszt egy osztály, amely végrehajtja a feladatot ScheduledExecutorService.scheduleAtFixedRate, és nem tudok találni a módját, hogy „menetrend” több fut a feladat egy egység teszt használata nélkül Thread.sleep, ami lassú, és nem pontos, mint szeretnék. Van-e bármilyen módon, hogy átmenjen egy kigúnyolják idő hivatkozással a végrehajtó szolgálat vagy más megoldásokat szimulálni az idő múlásával?

A kérdést 02/12/2019 23:59
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Unit tesztek ellenőrzésére viselkedését a kódot elszigetelten a függőségeket.

Az implementáció ScheduledExecutorServicebiztosítunk a JVM, és ezért nem a kód, de a függőség , hogy ki kell cserélni a vizsgálat kettős míg unittesting kódot. (Lehet, hogy egy érvényes beállítás egy teszt, hogy szüksége van a ScheduledExecutorServicevégrehajtás végre kell hajtani, de ez nem egy egység teszt majd.)

Tehát abban az esetben írunk egy egység teszt (és nem valamilyen más vizsgálat azaz integrációs tesztek , hogy segítségével történik, hogy a JUnit keretének ) Létre kell hozni egy ál az ScheduledExecutorServiceinterfész segítségével egy gúnyos keret (mint Mockito vagy más hasonló) és ellenőrizze, hogy a kódot kéri a megfelelő módszert az ál.

Annak érdekében, hogy a vizsgálat ezt az ellenőrzést kell beadni végrehajtását ScheduledExecutorServiceinterfészt a kódot (lehetőleg kivitelező injekció ), és nem rendelkezik a vizsgált egység azt megszerző maga úgy, hogy van egy varrás , amellyel meg lehet cserélni a tényleges végrehajtása ScheduledExecutorServiceinterfész látnia a modell céljára az egység tesztelése.

Válaszolt 03/12/2019 01:29
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more