如何在空手道的一个回答 API 响应中验证两种原始类型

How to validate two primitive types in one answered API response with Karate

我正在使用空手道来验证端点答案。而我的 API 正在用键值结构回答。问题是该值可能是布尔值或字符串。

我如何仅使用一个表达式 this OR 与空手道来验证这一点?

答案示例:

{
  "value": true,
  "key": "key1"
},
{
  "value": "This is my value",
  "key": "key2"
}

我试过

onfStructure: "#? _ == ^*(confStructure1 || confStructure2)"

confStructure1:
  value: "#boolean"
  key: "#string"

confStructure2:
  value: "#string"
  key: "#string"

confStructure: "#? _ == (^*confStructure1 || ^*confStructure2)"

confStructure: 
  value: "#(^*newSchema)"
  key: "#string"

newSchema:
  value: "#boolean"
  value: "#string"

但没有任何效果。

这是我能想到的解决这个问题的唯一方法。有时无法使用空手道“模式”。老实说,大多数 API 从来没有这种模式变化。

* def response = [{value: 'foo'},{value: true}]
* match each response == { value: "#? typeof _ == 'string' || typeof _ == 'boolean'" }