无法在Integration测试用例

时间:2016-09-28 08:39:50

标签: java spring rest date

我们正在编写Rest API的集成测试用例,其中我们正在验证Response DTO的所有属性的类型。在DTO中,我们有一个java.util.Date类型的属性。 但是,当它尝试使用

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

它使我们的测试用例

失败了
  

预期:是java.util.Date的一个实例        但是:< 2343240000L>是一个java.lang.Long

请告诉我们如何使用集成测试用例验证日期类型。

1 个答案:

答案 0 :(得分:1)

Spring使用Jackson来序列化JSON,Jackson默认将日期序列化为毫秒默认为@Reddy说。如果您希望使用以下格式的日期,请尝试使用monitoring注释在DTO中注释 testDate 字段:YYYY-MM-DD

如果您想要其他格式,请尝试使用

@Temporal

并使用您想要的模式更改模式。

如果这两个解决方案不起作用,您必须为日期字段定义自定义序列化程序以解决问题,并使用@DateTimeFormat(pattern = "dd/MM/yyyy") 注释注释日期字段的get方法。

JsonDateSerializer将是您的自定义序列化程序类。

有关自定义序列化程序的更多详细信息,请参阅此答案 https://stackoverflow.com/a/38186623/6503002