gpt4 book ai didi

java - 在 Dropwizard 中如何比较 json 中的日期

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

我正在尝试为我网站的 REST API 部分编写一个测试用例。我使用 dropwizard。

@Test
public void getAll(){
assertThat(resources.client().target("/blogcomments").request().get(List.class))
.isEqualTo(GsonInstance.INSTANCE.getGson().toJson(list));
verify(dao).getAll(list);
}

我得到的是这样的:

[{"comment"="comment", "date"=1464906153750L, "id"=1, "name"="name", "url"="url"}]

在上面的assert中,如果我使用一个对象来比较,实际上我使用的是[api.BlogComment@e3e181ab]

如果我使用 Gson 将对象转换为 json,如下所示:

@Test
public void getAll(){
assertThat(resources.client().target("/blogcomments").request().get(List.class))
.isEqualTo(GsonInstance.INSTANCE.getGson().toJson(list));
verify(dao).getAll(POJOs.BlogCommentPOJO.toString());
}

我得到的是:


org.junit.ComparisonFailure:
预期:"[{"id":1,"url":"url","comment":"comment","date":"Jun 2, 2016 6:27:50 PM","name":"name “}]”
实际:[{"comment"="comment", "date"=1464906470531L, "id"=1, "name"="name", "url"="url"}]

如何处理日期格式?如何比较两个JSON是否相等?

最佳答案

首先,您似乎试图比较实际值预期值的字符串表示形式。我建议您重写 POJO 及其内部类的 hashCode()equals() 方法。然后只需使用 assertEquals 即可比较测试用例中的对象。 (还可以覆盖toString以实现可调试性)

但是,由于某种原因,如果您需要比较 String 表示形式,您可以执行以下操作:(不过,我不推荐这样做)

关于java - 在 Dropwizard 中如何比较 json 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603221/

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