Karate 架构验证:特定值列表中的字符串

Karate 架构验证:特定值列表中的字符串,karate,Karate,我有一个端点,其响应如下: { "id": 1, "status": "ACTIVE" } 状态的可能值如下:活动、非活动、已删除。 要检查架构,我尝试了以下操作: * def statusValues = ["ACTIVE", "INACTIVE", "DELETED" ] * def schema = """ { "id" : #number, "status" : '#(^*statusValues)' } """ 为了验证这一点,我使用了以下句子:

我有一个端点,其响应如下:

{
     "id": 1,
     "status": "ACTIVE"
   }
状态的可能值如下:活动、非活动、已删除。 要检查架构,我尝试了以下操作:

* def statusValues = ["ACTIVE", "INACTIVE", "DELETED" ]
* def schema = 
"""
{
  "id" : #number,
  "status" : '#(^*statusValues)'
}
"""
为了验证这一点,我使用了以下句子: 然后匹配
response==schema

但它不起作用。这就是错误所在

实际:“活动”,预期:[“已删除”、“活动”、“非活动”],原因: 实际值与列表不同


你能帮我吗?

这可能是最简单的选择:

* def isValidStatus = function(x){ return statusValues.contains(x) }
* def schema = { id: '#number', status: '#? isValidStatus(_)' }