空手道使用模式匹配验证多个可能的值

时间:2019-12-19 10:14:36

标签: karate

下面是schema.jsoncity.area.status的值可以是“ ACTIVE”或“ INACTIVE”,

Schema.json
{
   "name": "#string",
   "city":{
      "area": {
         "type": "#string",
         "status": "ACTIVE"     
      }
   }
}

我正在使用

验证整个架构
* match each Response.hits.hits[*]._source == objectCatSchema

除了city.area.status字段之外,不使用#string,有什么方法可以验证值是ACTIVE还是INACTIVE

验证:

* def Response = call read ('`testResponse.json`')
* def expectedSchema = call read ('`citySchema.json`')
* match each `Response.hits.hits[*]._source == objectCatSchema`

1 个答案:

答案 0 :(得分:1)

可能还有其他方法,但是您可以使用:

* def statuses = ['ACTIVE', 'INACTIVE']
* def schema = { status: '#? statuses.contains(_)' }
* def response = { status: 'ACTIVE' }
* match response == schema