API каратэ, Как мне сопоставить 2 разных ответа - PullRequest
0 голосов
/ 29 ноября 2018

Я получаю 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 голосов
/ 29 ноября 2018

Попробуйте:

* 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, чтобы «проверить», какова форма ответа, а затем определить ожидаемые результаты.

...