gpt4 book ai didi

spring - 如何直接从 Spring 测试 MvcResult json 响应中检索数据?

转载 作者:行者123 更新时间:2023-12-03 18:32:25 26 4
gpt4 key购买 nike

我想从 json 响应中检索一个值,以便在我的测试用例的其余部分中使用,这是我现在正在做的:

MvcResult mvcResult = super.mockMvc.perform(get("url").accept(MediaType.APPLICATION_JSON).headers(basicAuthHeaders()))
.andExpect(status().isOk())
.andExpect(jsonPath("$[0].id", is(6))).andReturn();

String responseAsString = mvcResult.getResponse().getContentAsString();
ObjectMapper objectMapper = new ObjectMapper(); // com.fasterxml.jackson.databind.ObjectMapper
MyResponse myResponse = objectMapper.readValue(responseAsString, MyResponse.class);

if(myResponse.getName().equals("name")) {
//
//
}
我想知道是否有更优雅的方法可以直接从 MvcResult 检索值,就像 jsonPath 进行匹配一样?

最佳答案

我找到了一种使用 JaywayJsonPath 的更优雅的方法:

MvcResult mvcResult = super.mockMvc.perform(get("url").accept(MediaType.APPLICATION_JSON).headers(basicAuthHeaders()))
.andExpect(status().isOk())
.andExpect(jsonPath("$[0].id", is(6))).andReturn();

String response = mvcResult.getResponse().getContentAsString();
Integer id = JsonPath.parse(response).read("$[0].id");

关于spring - 如何直接从 Spring 测试 MvcResult json 响应中检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53486737/

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