Czy istnieje sposób na manipulowanie bieżącym czasem w teście jUnit 4.5? Mam następującą metodę, którą chciałbym mieć badanej jednostki namanipulować bieżącym czasem w testowaniu jednostkowym?
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);
}
jeden sposób, aby ułatwić testowanie jest podzielić ją na dwa sposoby
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);
}
To pozwala mi testować logika odejmowania tygodni, ale test getLastWeek pozostawia nietestowany i wolę mieć tylko jedną metodę.
Jest to tylko jedna metoda, tylko z dwiema różnymi listami parametrów :) – guerda