Тестирование API каратэ - проверьте, есть ли порода "ретривер" в списке - PullRequest
0 голосов
/ 08 ноября 2018

Я тестирую публичный API, в котором перечислены все типы пород.

https://dog.ceo/api/breeds/list/all'

В ответе мне нужно проверить, есть ли в списке порода "ретривер". Мой файл функций выглядит следующим образом

Добавление: тестирование API REST

Scenario: Testing valid GET endpoint
Given url 'https://dog.ceo/api/breeds/list/all'
When method GET
Then status 200
And print response
And match response.message contains 'retriever'

Однако я получаю следующую ошибку:

com.intuit.karate.exception.KarateException: путь: $ .message, фактический: {affenpinscher = [], african = [], airedale = [], akita = [], appenzeller = [], Басенджи = [], Бигль = [], Блютик = [], Борзая = [], Бувье = [], Боксер = [], brabancon = [], briard = [], бульдог = ["бостон", "французский"], bullterrier = ["staffordshire"], cairn = [], cattledog = ["australian"], чихуахуа = [], чау = [], кламбер = [], cockapoo = [], колли = ["border"], coonhound = [], corgi = ["кардиган"], cotondetulear = [], такса = [], далматин = [], датчанин = ["great"], дирхаунд = ["scottish"], dhole = [], dingo = [], доберман = [], elkhound = ["норвежский"], entlebucher = [], eskimo = [], frize = ["bichon"], germanshepherd = [], борзая = ["italian"], Groenendael = [], гончая = [ "афганец", "бассет", "кровь", "английский", "Ибицы", "ходок"], лайка = [], keeshond = [], kelpie = [], komondor = [], kuvasz = [], labrador = [], леонберг = [], лхаса = [], маламут = [], малинуа = [], мальтийский = [], мастиф = ["бык", "тибетский"], мексиканский волос = [], микс = [], гора = ["bernese", "swiss"], ньюфаундленд = [], otterhound = [], папийон = [], пекинес = =], пемброк = [], пинчер = ["миниатюра"], pointer = ["german", "germanlonghair"], pomeranian = [], пудель = ["миниатюрный", "стандартный", "игрушка"], мопс = [], puggle = [], пиренеи = [], redbone = [], retriever = ["chesapeake", "curly", "flatcoated", "golden"], ridgeback = ["родезийский"], ротвейлер = [], салюки = [], самоед = =], schipperke = [], schnauzer = ["гигант", "миниатюра"], setter = ["english", "gordon", "irish"], sheepdog = ["english", "shetland"], шиба = [], шихта = [], spaniel = ["blenheim", "brittany", "cocker", "irish", "japanese", "sussex", "welsh"], springer = ["english"], stbernard = [], терьер = [ "американский", "австралийская", "бедлингтон", "граница", "Денди", "лис", "ирландский", "kerryblue", "Лейкленд", "Norfolk", "Норвич", "Patterdale" , "рассел", "шотландский", "Sealyham", "шелковистый", "тибетский", "игрушка", "westhighland", "пшеничный", "йоркширский"], vizsla = [], weimaraner = [], whippet = [], wolfhound = ["irish"]}, ожидается: 'retriever', причина: фактическое значение не является строкой

1 Ответ

0 голосов
/ 08 ноября 2018

Внимательно посмотрите на структуру ответа. Это будет работать:

And match response.message contains { retriever: '#array' }
And match response.message.retriever == ['chesapeake', 'curly', 'flatcoated', 'golden']

Читайте документацию и примеры.

...