java DateTimeFormatterBuilder не выполняется во время тестирования - PullRequest
0 голосов
/ 25 мая 2018

У меня есть простой тест jUnit для DateTimeFormatterBuilder.Во время выполнения это работает, когда некоторое значение String приходит на сервер Spring-MVC (@RequestParam)

Во время тестирования происходит сбой с тем же значением String.

Проверенное значение: 25-May-2018 11:10

Метод тестирования:

public void getTimeDifference(@RequestParam String startDate, @RequestParam String endDate) {
    DateTimeFormatter DATE_TIME_FORMAT = new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern("dd-MMM-yyyy HH:mm").toFormatter();
    LocalDateTime.parse(startDate,DATE_TIME_FORMAT);
    return   messages;
}

Метод тестирования:

@Test
public void testFormat() throws Exception {
    final String startDateFormatA = "25-May-2018 11:10";
    final String endDateFormatA = "25-May-2018 11:10";
    assertEquals("06:00", callDbController.getTimeDifference(startDateFormatA, endDateFormatA)[1]);
}

Мой тест: во время выполнения я устанавливаю точку останова и тестирую ее на дисплее-View:

LocalDateTime.parse("25-May-2018 11:10",DATE_TIME_FORMAT)

Во время тестирования с тем же контекстом Spring-Aplication я делаю то же самое, что и во время выполнения, и это не удается.

Есть ли у кого-нибудь идеи?

1 Ответ

0 голосов
/ 25 мая 2018

Название месяца на английском языке, поэтому вам лучше установить java.util.Locale в форматере.

Если вы не установите его, форматтер будет использовать локаль JVM по умолчанию.И если это не английский язык, вы можете получить сообщение об ошибке (и в разных средах могут быть разные конфигурации, поэтому лучше установить языковой стандарт, чем полагаться на JVM по умолчанию).

Просто выполните toFormatter(Locale.ENGLISH) вместо простогоtoFormatter() и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...