当前位置: 首页 > 知识库问答 >
问题:

放心-列表中的一组值的json主体断言,无论其位置如何

安坚诚
2023-03-14

我正在使用放心来测试Restapi。我有一个返回对象数组的json响应。我想验证它是否包含具有特定值测试的对象。请检查以下示例:

示例 JSON:

{
    "contents" : [
         {  
              "field1" : "value1",
              "field2" : "value2"
         },
         {  
              "field1" : "value3",
              "field2" : "value4"
         }
    ]
}

我如何写主体断言,以便我可以检查,不管我有一个条目的位置:

价值1

...get ("/myEndpoint" )
.then()
.body ( "contents.?????", contains...)

共有1个答案

焦苏燕
2023-03-14

取决于你所说的“无论职位”是什么意思。

如果您的意思是不考虑< code >内容中的位置,但重要的是< code>field1在< code>field2之前指定,您可以这样做:

when().
        get("/myEndpoint").
then().
        root("contents.any { it == ['field1':'%s', 'field2':'%s'] }").
        body(withArgs("value1", "value2"), is(true)).
        body(withArgs("value3", "value4"), is(true));

如果您不在乎< code>field1是否在< code>field2之前指定,您可以这样做:

when().
        get("/myEndpoint").
then().
        root("contents").
        body("", hasItems(hasEntry("field2", "value2"), hasEntry("field1", "value1")),
             "", hasItems(hasEntry("field1", "value3"), hasEntry("field2", "value4")));

您可以在此处阅读“根路径”。

 类似资料:
  • 我有3个盒子,使用FlexBox垂直堆叠。他们现在的位置在左边。我想让它们在水平方向居中。我尝试了div{margin:10px auto},它可以工作,但css看起来很尴尬。有没有使用特殊flexbox特性的更优雅的解决方案? 我要divs在中间。 null null

  • 问题内容: 我使用64位整数内的位存储标志。 我想知道是否有单个位设置了64位整数中的任何位置(我不在乎任何特定位的位置)。 我可以使用 Bit Twiddling Hacks (由Sean Eron Anderson 撰写) 来计数位数,但是我想知道什么是最有效的方法来检测是否设置了一位。 以及一些维基百科页面: 找到第一个 位操作 汉明重量 注意:我的应用程序是用Java编写的,但是我对使用其

  • 我如何用放心(2.4.0)检查响应json是否为空列表? 给定响应(带有标头),我尝试了:

  • 基本上,我构建了一个包含JSON对象主体字段名字符串的列表。 大概是这样的: 然后我使用Rest assured获得了JSON格式的响应,如下所示: 所以我的列表包含“身份证”、“姓名”和“年龄”。如何验证JSON字段与列表中的字符串匹配。不取决于他们的订单。 我只知道如何验证它包含一个String,下面是我使用的整个JUnit测试方法: 有什么建议吗?

  • 我正在尝试使用jsonPath从JSON数组中提取值。 JSON响应示例: 目前的测试如下: 然而,我一直在处理我的错误代码。我只想知道它的价值。

  • 我对字符串列表进行了一些数据转换,得到了一个列表,其中左表示错误,右表示成功转换的项。 我将结果划分为: 做了一些错误处理后,我想返回有效项目的。这意味着,返回所有右元素的值。由于分区,我已经知道项目的所有元素。我想出了五种可能的方法。但是易读性和性能最好的是什么?在Scala中有没有惯用的方法?