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

用hamcrest处理数组,放心

钮鸿煊
2023-03-14

我不知道如何使用hamcrest创建代码来检查数组内具有这些属性的数组。

(想象一下,因为它有多个具有不同数据的条目)

 {
        "mobilenum": "+6519829340",
        "firstname": "Allen",
        "lastname": "Edwards",
        "location": "Singapore"
    }

如果我使用这个:

 .body("smsentries.mobilenum", contains(equalTo("+6519829340")));

它返回它确实存在,但我如何检查它找到的对象是否也具有相同的名字、姓氏和位置?

我也认为这是错误的:

 .body("smsentries.mobilenum", contains(equalTo("+6519829340")))
      .and()
 .body("smsentries.firstname", contains(equalTo("Allen"));

我在这里理解的是,如果数组包含的mobilenum等于提供的mobillenum,并且如果数组包含名称“Allen”,它将搜索数组

我需要的是找到移动数等于“6519829340”并且名字等于“Allen”的数组。

你们知道怎么做吗?

共有1个答案

虞祯
2023-03-14

我需要的是找到移动数等于“6519829340”并且名字等于“Allen”的数组。

您可以使用“查找”方法

.body("smsentries.find { it.mobilenum == '+6519829340' }.firstname", equalTo("Allen")
.body("smsentries.find { it.mobilenum == '+6519829340' }.lastname", equalTo("Edwards").

如您所见,在这两种情况下,您实际上是在复制路径表达式,为了改进这一点,我们可以使用根路径:

.root("smsentries.find { it.mobilenum == '+6519829340' }").    
.body("firstname", equalTo("Allen")
.body("lastname", equalTo("Edwards").

您还可以参数化根路径:

.root("smsentries.find { it.mobilenum == '%s' }").    
.body("firstname", withArgs("+6519829340"), equalTo("Allen")
.body("lastname", withArgs("+6519829340"), equalTo("Edwards").
.body("firstname", withArgs("+12345678"), equalTo("John")
.body("lastname", withArgs("+12345678"), equalTo("Doe").
 类似资料:
  • 主要内容:创建一个数组,访问数组,修改数组,迭代数组,数组的长度,在数组中创建结构数组类型并没有明确定义为批处理脚本中的类型,但可以实现。 在批处理脚本中实现数组时需要注意以下几点。 数组中的每个元素都需要用命令来定义。 循环将需要遍历数组的值。 创建一个数组 一个数组是通过使用下面的命令创建的。 其中是数组的索引,是分配给数组的第一个元素的值。 另一种实现数组的方法是定义一个值列表并遍历值列表。 以下示例显示了如何实现。 示例 以上命令产生以下输出 - 访问数组 可以使用下标

  • 我有一个放心的测试,我试图验证响应中的日期是否介于传入的日期参数之间。我正在尝试使用Hamcrest Date,但在json响应中传递回来的日期是yyyy MM dd,Hamcrest Date似乎是日、日、月、年。我不能用。正文断言中的格式(DateTimeFormatter.BASIC_ISO_DATE),因为DateTimeFormatter将其转换为字符串,而Hamcrest DATE似乎

  • 本文向大家介绍jQuery数组处理函数整理,包括了jQuery数组处理函数整理的使用技巧和注意事项,需要的朋友参考一下 写在前面: jQuery的数组处理函数整理如下,如有补充和建议,欢迎评论交流~   1、$.trim(value)  从value中删除任何前导或尾随的空白字符   2、$.each(container, callback(key,value))  对container的每一项进

  • arr数组最小长度是4最大是8 let num = 600;暂时写死600,这个数自定义输入的 麻烦各位大佬帮忙看看

  • 问题内容: 这是deepbit.net返回给我的比特币矿工的json。我正在尝试访问worker数组并循环进行以打印myemail@gmail.com worker的统计信息。我可以访问Confirmed_reward,hashrate,ipa和payout_history,但是在格式化和输出worker数组时遇到问题。 谢谢您的帮助 :) 问题答案: 我假设您已经解码了使用json_decode

  • let num = 600; num是最大数为600,然后根据arr数组里面的test的值之和(5+4+5+6)为20, 600 / 20 = 30; 希望得到下面的格式: 图片第一列5个输入框对应数组arr里面下标为0的test的值为5 图片第二列4个输入框对应数组arr里面下标为1的test的值为4 ... 控制1-30之间的随机数里面的输入框修改的时候只能输入1-30的数, 控制31-60之