karate - 空手道 API,我如何匹配 2 个不同的响应
问题描述
根据端点的状态,我从端点获得 2 个不同的响应,其中任何一个都可以。
第一反应:
{"available":'#boolean',"collection":'#boolean'}
第二个回应:
{"code": "#string","message": "#string"}
我正在尝试以下方法,但它不起作用:
def firstSchema = {"available":'#boolean',"collection":'#boolean'}
def secondSchema = {"code": "#string","message": "#string"}
匹配响应包含任何(firstSchema, secondSchema)
任何想法如何最好地让这个工作,所以任何一个反应都很好?
谢谢
解决方案
尝试这个:
* def first = { available: true, collection: true }
* def second = { code: 'foo', message: 'bar' }
* def response = second
* def expected = response.code ? { code: '#string', 'message': '#string' } : { available: '#boolean', collection: '#boolean' }
* match response == expected
另请参阅有关“条件逻辑”的文档。您可以使用 JsonPath 来“检查”响应的形状,然后定义预期结果。
推荐阅读
- python - 如何在 python 中删除包含部分(搜索词)的行?
- javascript - Discord.js 报告命令错误:客户端未定义
- r - 将“假”离散或连续图例添加到具有不在数据中的值的图
- javascript - 使用 Clipboard.write() 将图像和文本一起存储
- python - 保存微调的 Tensorflow 模型时列表索引超出范围
- javascript - 是否可以在 react-native 中运行 puppeteer?
- python - title() 是类的自动方法吗?
- python - 雅虎财经熊猫数据框和高低价时间戳
- php - Laravel Excel - 具有自定义视图的多个工作表
- c++ - 移动语义及其工作原理?