gpt4 book ai didi

java - 无法验证集成测试用例中的日期类型

转载 作者:行者123 更新时间:2023-12-01 09:27:15 25 4
gpt4 key购买 nike

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

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

它未能通过我们的测试用例

Expected: is an instance of java.util.Date but: <2343240000L> is a java.lang.Long

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

最佳答案

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

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

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

然后将图案更改为您想要的图案。

如果这两个解决方案不起作用,您必须为日期字段定义一个自定义序列化程序来解决问题,并使用 @JsonSerialize(using=JsonDateSerializer.class) 注释日期字段的 get 方法。注释。

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

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

关于java - 无法验证集成测试用例中的日期类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39742190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com