繁体   English   中英

response.jsonPath() 元素周围有方括号,如何检索字符串值? Rest 放心

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM