C'è un modo per manipolare l'ora corrente in un test di jUnit 4.5? Ho il seguente metodo che mi piacerebbe avere una prova di unità permanipola l'ora corrente nel test dell'unità?
public String getLastWeek() {
GregorianCalendar c = new GregorianCalendar(TimeZone.getTimeZone("Europe/Stockholm"));
c.setFirstDayOfWeek(GregorianCalendar.MONDAY);
c.add(GregorianCalendar.WEEK_OF_YEAR, -1);
return c.get(GregorianCalendar.YEAR) + " " + c.get(GregorianCalendar.WEEK_OF_YEAR);
}
Un modo per rendere più facile test è quello di dividerlo in due metodi
public String getLastWeek() {
GregorianCalendar c = new GregorianCalendar(TimeZone.getTimeZone("Europe/Stockholm"));
return getLastWeekFor(c);
}
public String getLastWeekFor(GregorianCalander c) {
c.setFirstDayOfWeek(GregorianCalendar.MONDAY);
c.add(GregorianCalendar.WEEK_OF_YEAR, -1);
return c.get(GregorianCalendar.YEAR) + " " + c.get(GregorianCalendar.WEEK_OF_YEAR);
}
che mi permette di testare la settimana sottrazione logica, ma lascia getLastWeek non testati e preferisco avere solo un metodo per questo.
In alternativa, è solo un metodo, solo con due diversi elenchi di parametri :) – guerda