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

空手道API框架-如何检查特定字段值在数组下是否不重复

滕星纬
2023-03-14

使用空手道框架,我如何确保persons数组下的personId不应作为重复值出现

如果您看到下面的响应,id: 1记录有重复的个人ID,因此在这种情况下,我的测试应该失败。此外,人数组本质上是动态的,可能有一些记录也包含4个人以上。

因此,一个通用的方法应该是有帮助的。请帮忙。

    {
        "total": 10,
        "count": 10,
        "results": [
            {
                "id": "1",
                "source": {
                    "authors": {
                        "persons": [
                            {
                                "personId": 11
                            },
                            {
                                "personId": 11
                            }
                        ]
                    }
              }
          },
          {
                "id": "2",
                "source": {
                    "authors": {
                        "persons": [
                            {
                                "personId": 11
                            },
                            {
                                "personId": 15
                            }
                        ]
                    }
              }
          }
    ]
}

共有1个答案

郑波
2023-03-14

在这里,一个可能的解决方案使用JS函数和使用JavaSet

* def isValid =
"""
function(x) {
  var personIds = karate.jsonPath(x, '$[*].personId');
  var distinct = new java.util.HashSet(personIds);
  return personIds.size() == distinct.size();
}
"""
* match each $..persons == '#? isValid(_)'
 类似资料:
  • 我可以有一个回应: 如果用户没有狗 或者 如果用户有狗。 在我的特写中,我有: prb是指如果我有一个没有狗的用户响应,我有以下错误: 如何检查模式中的属性“dog”?谢谢

  • 以下是我的示例功能文件: 有没有一种方法可以使用空手道表达式检查状态是主动还是不主动? 注意:它肯定可以通过编写托管JS函数来实现。

  • 我下面有这些代码,如何检查是否为空? 如果我将,它显示此[] 如何检查数组是否为空,然后显示消息“This is empty”? 我试过了,但效果不好。即使它大于或小于0,也将始终显示“2”

  • 问题内容: 我有一个Array类型的PHP变量,我想找出它是否包含特定值,并让用户知道它在那里。这是我的数组: 我想做些类似的事情: 最好的方法是什么? 问题答案: 使用功能。

  • 如果列表中的值存在于其中一个dataframe列中,我需要迭代列表并执行特定操作。我试着按照下面的方法做,但发现了下面的错误 '错误:#序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all() 所需输出:

  • 样本响应 示例要素文件 有没有办法用空手道表情来检查状态是活动的还是不活动的? 注意:可以通过编写自定义JS函数来实现。