У меня есть класс Util с 1 методами, который вычисляет возраст с помощью Joda времени:время независимого JUnit Test Cases
public static int getAge(LocalDate birthdate) {
LocalDate today = new LocalDate();
Period period = new Period(birthdate, today, PeriodType.yearMonthDay());
return period.getYears();
}
я написал обширный класс теста JUnit, но как я могу сделать это не зависит от времени ? Если я создам тестовый пример, чтобы рассчитать возраст кого-то, если они родились сегодня в 1970 году, тогда результат будет 46 лет. Но через 1 год, если я запустил тестовый пример, он потерпит неудачу, потому что результат будет равен 47.
Так как же сделать эти тестовые случаи независимыми от времени. Я думал о наличии какого-то интерфейса календаря, из которого тестовые примеры будут создавать объект даты. Я также наткнулся на сообщение this, которое является еще одним возможным решением этого, но я не уверен, как это сделать.
Ничего себе .... Я не уверен, почему я не думал об этом ...... наиболее очевидное решение ... спасибо – Richard
np. Вы можете принять ответ :-) – mks
На самом деле это не работает сейчас, когда я думаю об этом, потому что 'new LocalDate' находится внутри функции getAge, и я не могу его жестко кодировать. Это должна быть текущая дата, когда она используется в производстве. Поэтому мне интересно, есть ли способ заменить это, используя 'Mockito.when' – Richard