2016-09-28 2 views
0

Мы пишем тестовые таблицы интеграции для API Rest, где мы проверяем тип всех свойств Response DTO. В DTO у нас есть одно свойство типа java.util.Date. Однако, когда пытаются использоватьНевозможно проверить тип даты в тестовых примерах интеграции

.andExpect(jsonPath("$.testDate", isA(Date.class))) 

он не наш тестовый пример с

ОЖИДАЕТСЯ: является экземпляром java.util.Date но: < 2343240000L> является java.lang. Долгосрочные

Пожалуйста, дайте мне знать Как мы можем проверить тип даты с помощью тестовых примеров интеграции.

+1

Дата сериализация в мсе, который я думаю, это по умолчанию. вам может понадобиться отключить метку времени записи свойства, как долго в конфигурации сериализации, предполагая, что вы используете Джексона. – Veeram

ответ

1

Spring использует Jackson для сериализации серийных номеров JSON и Jackson как миллисекунды по умолчанию, как говорит @Reddy. Попробуйте аннотировать поле testDate в вашем DTO с @Temporal аннотацию, если вы хотите дату в следующем формате: YYYY-MM-DD

Если вы хотите его в другом формате, попробуйте

@DateTimeFormat(pattern = "dd/MM/yyyy") 

и изменить шаблон с тем, который вы хотите.

Если эти два решения не работают, вы должны определить пользовательский сериализатор для полей даты, чтобы решить проблему, и аннотировать метод get ваших полей даты с помощью аннотации @JsonSerialize(using=JsonDateSerializer.class).

JsonDateSerializer будет вашим обычным классом сериализатора.

Для более подробной информации о пользовательском сериализаторе см этого ответ https://stackoverflow.com/a/38186623/6503002

+0

@Reddy и amicoderozer .. Спасибо за ваше драгоценное время. –

Смежные вопросы