[英]Serializing using Rest Assured response.jsonPath().getObject() returns null
[英]response.jsonPath() has square brackets around the element, how do I retrieve the string value? Rest Assured
我有一个 HTTP 响应主体,当我发出 GET 请求时,它看起来是这样的:
[
{
"id": "1111",
"type": "Sale",
"name": "MyNameTest",
"shortDescription": "Sale a"
}
]
当我尝试使用“Rest Assured”断言结果时,名称值始终包含在方括号 [] 中。
final String returnedAttributeValue = response.jsonPath().getString("name");
Assert.assertEquals(returnedAttributeValue, "MyNameTest");
所以测试失败,预期为“MyNameTest”,但为“[MyNameTest]”
谁能告诉我如何解决这个问题?
您正在访问数组中的值,因此请使用name[n]
final String returnedAttributeValue = response.jsonPath().getString("name[0]");
Assert.assertEquals(returnedAttributeValue, "MyNameTest");
检查数组内容的另一种可能的解决方案是,您可以使用org.hamcrest.Matchers.contains
:
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.hamcrest.Matchers.contains;
response
.andExpect(jsonPath("$name", contains("MyNameTest")));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.