2016-09-28 28 views
0

我們正在爲Rest API編寫集成測試用例,我們正在驗證Response DTO的所有屬性的類型。在DTO中,我們有一個java.util.Date類型的屬性。 然而,當嘗試使用無法驗證集成測試用例中的日期類型

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

失敗我們的測試用例

預計:是java.util.Date 的實例,但:< 2343240000L>是java.lang中。長

請讓我知道我們如何使用集成測試用例來驗證日期類型。

+1

日期序列化爲我認爲這是默認米利斯。您可能希望在序列化配置中只要使用Jackson就禁用屬性寫入時間戳。 – Veeram

回答

1

Spring按照@Reddy的說法,使用Jackson將JSON和Jackson序列化日期默認爲毫秒。試着用@Temporal註解註釋testDate場在你的DTO,如果你想在這個格式的日期:如果你想讓它YYYY-MM-DD

以另一種格式嘗試

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

和更改與你想要的模式。

如果這兩個解決方案不起作用,您必須定義日期字段的自定義序列化程序來解決問題,並使用@JsonSerialize(using=JsonDateSerializer.class)註釋標記日期字段的get方法。

JsonDateSerializer將是您的自定義序列化類。

有關自定義序列詳見這個答案 https://stackoverflow.com/a/38186623/6503002

+0

@Reddy和amicoderozer ..感謝您寶貴的時間。 –