Я столкнулся с небольшой проблемой. Я написал некоторый код и тесты. Мне пришлось проверить работу с датами в некоторых объектах, затем я создал несколько тестовых данных, таких как:
task.setPlannedTime(
DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss")
.parseDateTime("4/27/2018 08:00:00")
.toDate());
И у меня есть еще несколько таких задач. Это сжатые данные, которые будут возвращены при вызове какого-либо метода, не говоря уже о том, что дело где-то рядом.
Протестированный код представляет собой некоторую сортировку списка этих задач. И затем я проверяю в тестах, что я отсортировал эти данные правильно. Я использую то же утверждение, что и раньше, чтобы создать дату для сравнения. (Я использую TestNG). И метод испытания выглядит следующим образом:
testSmth() {
setupMockData(getStubbedTaskList()); // get stubbed data and then just some mocking
handler.doSomething();
List<Task> tasks = getCapturedTasks();
//and here I want to check if the first element has correct date
assertEquals(
tasks.get(0).getPlanendDate(),
DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss")
.parseDateTime("4/27/2018 08:00:00")
.toDate()
);
}
getStubbedData
- это метод, который возвращает список заданий с
разные даты, как в первом листинге кода.
Дело в том, что это работает. Я запускаю тесты локально, используя maven и IDEA runner. Все отлично. Но как только он появляется на CI / CD (мы используем Jenkins), я получил неудачную сборку.
Причина странная. Когда я создаю тестовые данные, такие как int, в первом листинге кода на CI / CD, дата всегда Fri Apr 27 01:00:00
. Но в утверждении утверждения дата была создана правильно Fri Apr 27 08:00:00
. И я получил ошибку утверждения, потому что ожидаемая дата была Fri Apr 27 08:00:00
, но фактическая Fri Apr 27 01:00:00
.
Я имею в виду, что обе даты для утверждения и заглушки создаются одинаковым образом в одном классе в одном и том же методе тестирования. Но для сжатых данных все даты разбираются во что-то странное. Как это возможно? Это не похоже на типичную проблему с часовым поясом или чем-то в этом роде.
Каждый голос ценится. Был бы очень благодарен за любые мысли.
Спасибо.
P.S .:
Причина, по которой я не думаю, что из-за часового пояса в том, что каждая дата всегда одинакова: Fri Apr 27 01:00:00
, когда я создаю для 08:00:00
, то же самое, когда я создаю для 13:00:00
и так далее.
P.S.S: Java 7 ...