Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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 空手道Intuit:如何验证动态json数组_Karate_Intuit - Fatal编程技术网

Karate 空手道Intuit:如何验证动态json数组

Karate 空手道Intuit:如何验证动态json数组,karate,intuit,Karate,Intuit,我用空手道已经有一段时间了,但我一直被困在如何验证这个动态数组上。当我点击API时,数组大小不同 如何逐一检查阵列并验证价格 JSON: { "data": { "apple": [ { "a": 0, "price": 1970, "date": "2018-05-30" }, {

我用空手道已经有一段时间了,但我一直被困在如何验证这个动态数组上。当我点击API时,数组大小不同

如何逐一检查阵列并验证价格

JSON:

  {
    "data": {
        "apple": [
            {
                "a": 0,
                "price": 1970,
                "date": "2018-05-30"
            },
            {
                "a": 1,
                "price": 1266,
                "date": "2018-05-31"
            },
            {
                "a": 2,
                "price": 1422,
                "date": "2018-06-01"
            }
        ]
    },
    "status_code": 200
}
你知道语法吗


我能够通过数据驱动的方法做到这一点

在Assertions.feature文件中,我的代码是:

Scenario: 
    * match __arg contains { a: '#(__arg.a)', price: '#(__arg.price)', date: '#(dataBaseResult[__loop].date)' }
注意:

  • 可以从任何源提取预期数据。示例:数据库
  • 记住“_循环”将给出数组的索引

  • 嘿,谢谢你的快速回答,但问题是我不想做静态验证。我在java中有一个函数,它将查询数据库中的特定日期并获取价格(我知道如何在空手道中使用此函数,但如何在这个动态大小的数组中使用此函数),这正是我想要的validate@KarthikRavi我看不出这个问题。只使用数组索引
    *match response.data.apple[0]
    等等?嘿,这很好,但我不想像*match response.data.apple[0]那样一个接一个地做,然后在那之后*match response.data.apple[1]等等。有没有可能让一个循环通过数组并验证?@KarthikRavi你的问题非常不清楚,对不起。但是,是的,你可以做各种各样的疯狂,你为什么不通过这些例子:Karthik,你能想出一种方法来做到这一点吗?
    # work on the second item in the array
    * def index = 1
    * def second = response.data.apple[index]
    * match second.price = 1266
    
    Feature: my test
    
    Scenario: 
        * def response =
          """
          {
              "data": {
                  "apple": [
                      {
                          "a": 0,
                          "price": 1970,
                          "date": "2018-05-30"
                      },
                      {
                          "a": 1,
                          "price": 1266,
                          "date": "2018-05-31"
                      },
                      {
                          "a": 2,
                          "price": 1422,
                          "date": "2018-06-01"
                      }
                  ]
              },
              "status_code": 200
          }
          """
        * def va = call read('classpath:karate/examples/Assertions.feature') response.data.apple
    
    Scenario: 
        * match __arg contains { a: '#(__arg.a)', price: '#(__arg.price)', date: '#(dataBaseResult[__loop].date)' }