úterý 16. června 2015

Jak otestovat změnu času

Když je v testech potřeba posouvat čas. Bývá to poměrně pracné většinou člověk skončí s tím že píše nějaký "DateProvider", který se pak dá namockovat.

Ve spoustě případů se dá použít jednoduchá alternativa a využít Joda Time

Joda Time nabízí funkci DateTimeUtils.setCurrentMillisProvider(MillisProvider millisProvider) (a i další funkce setCurrentMillisFixed, setCurrentMillisOffset), kterými jde snadno říct, jak se má čas v testech chovat.
Po testu se musí čas zase vrátit do normálu!!! :) funkcí DateTimeUtils.setCurrentMillisSystem() V kódu se musí samozřejmě zjištovat čas přes Joda Time (např. new DateTime()).

A to je ve stručnosti vše.