如何在空手道的一个回答 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'" }
我正在使用空手道来验证端点答案。而我的 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'" }