gpt4 book ai didi

java - 断言错误 : No value for JSON Path in JUnit test

转载 作者:搜寻专家 更新时间:2023-11-01 01:16:11 25 4
gpt4 key购买 nike

我已经编写了一个测试并且它之前成功了,但现在我得到一个 AssertionError:JSON Path 没有值。

@Test
public void testCreate() throws Exception {
Wine wine = new Wine();
wine.setName("Bordeaux");
wine.setCost(BigDecimal.valueOf(10.55));

new Expectations() {
{
wineService.create((WineDTO) any);
result = wine;
}
};

MockMultipartFile jsonFile = new MockMultipartFile("form", "", "application/json", "{\"name\":\"Bordeaux\", \"cost\": \"10.55\"}".getBytes());
this.webClient.perform(MockMvcRequestBuilders.fileUpload("/wine").file(jsonFile))
.andExpect(MockMvcResultMatchers.status().is(200))
.andExpect(MockMvcResultMatchers.jsonPath("$.name").value("Bordeaux"))
.andExpect(MockMvcResultMatchers.jsonPath("$.cost").value(10.55));
}

我得到的错误是:

java.lang.AssertionError: No value for JSON path: $.name, exception: No results path for $['name']

我不明白它没有得到什么或缺少什么。

最佳答案

我遇到了同样的问题。

解决方案:

使用 .andReturn().getResponse().getContentAsString();,您的响应将是一个字符串。我的回复是:

{"url":null,"status":200,"data":{"id":1,"contractName":"Test contract"}

当我尝试执行 .andExpect(jsonPath("$.id", is(1))); 时出现错误:java.lang.AssertionError: No value对于 JSON 路径:$.id

为了修复它,我做了 .andExpect(jsonPath("$.data.id", is(1))); 并且它起作用了,因为 id 是数据中的一个字段。

关于java - 断言错误 : No value for JSON Path in JUnit test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659684/

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