空手道API,如何匹配2种不同的响应

时间:2018-11-29 16:00:13

标签: karate

根据端点的状态,我会从端点收到2种不同的响应,它们之一都可以。

第一反应:

{"available":'#boolean',"collection":'#boolean'}

第二反应:

{"code": "#string","message": "#string"}

我正在尝试以下操作,但不起作用:

  • def firstSchema = {"available":'#boolean',"collection":'#boolean'}
  • def secondSchema = {"code": "#string","message": "#string"}

匹配响应包含任何(firstSchema, secondSchema)

有什么想法可以最好地使此工作正常进行,以便任何一种响应都可以吗?

谢谢

1 个答案:

答案 0 :(得分:0)

尝试一下:

* 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来“检查”响应的形状,然后定义期望的结果。