Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Karate 针对大型动态响应的断言_Karate - Fatal编程技术网

Karate 针对大型动态响应的断言

Karate 针对大型动态响应的断言,karate,Karate,我有一个非常大的响应数组,我想断言它,但不知道它的顺序。我有一个带有预期响应值的变量,所以我可以进行一个巨大的比较,但是我无法加载整个响应并同时将其与整个预期响应变量进行比较 * def obligationsQuery = Java.type("tests.account.sql.Obligations").getObligations(division, account) * def getObligations = db.readRows(obligationsQuery)

我有一个非常大的响应数组,我想断言它,但不知道它的顺序。我有一个带有预期响应值的变量,所以我可以进行一个巨大的比较,但是我无法加载整个响应并同时将其与整个预期响应变量进行比较

* def obligationsQuery = Java.type("tests.account.sql.Obligations").getObligations(division, account)
    * def getObligations = db.readRows(obligationsQuery)

    Given path "account", "v1", "accounts", systemId, "obligations"
      And header api-key = gatewayKey
    When method GET
    Then status 200
      And match $.data != null
      And match $.data[*].transactionType contains any "<transactionTypeResponse>"
      And match $.data[*] contains only getObligations

    Examples:
      | description | transactionType | transactionTypeResponse |
      | Invoice     | 001             | invoice
我也试过:
并匹配每个$。数据[*]仅包含GetResponsibilities
但我得到:

get_obligations_collection.feature:49 - path: $[0], actual: [{"object1"}, expected: [{"object1"}, {"object2"}, {"etc"}, reason: actual value is not list-like

我假设
$.data
是一个JSON数组,因此无需使用JSON路径通过调用
$.data[*]
将数据再次获取到另一个数组中

所以

和match$。数据仅包含GetResponsibilities

应该有用


如果这仍然不起作用,请提供一些适当的
响应
获取义务
值以进一步调查。

我假设
仅包含
将显示我变量的完整值,但很聪明,它只显示与api响应对象不匹配的对象。能够通过一个更简单的断言来验证这一点,然后检查错误消息,发现一个ID缺少API添加的填充,但DB没有


像往常一样,只要更仔细地查看返回的数据就可以提供一个简单的解释。

是的,空手道仍然处理
$.data[*]
,但您是正确的,不需要。
get_obligations_collection.feature:49 - path: $[0], actual: [{"object1"}, expected: [{"object1"}, {"object2"}, {"etc"}, reason: actual value is not list-like