Я немного озадачен, почему мои тесты проходят. Я делаю некоторые утверждения о том, что, по моему мнению, должен вернуть ответ. Я получаю успешный статус 200 и пустой ответ. Однако все следующие утверждения проходят:
When method get
* print response
Then status 200
And match response == '#notnull'
And match each $[*] == { caption : '#string' }
And match each $[*] contains { source : '#object' }
And match each $[*].source contains {channels : '#present' }
And match each $[*] contains { post : '#object' }
Тестовый вывод:
12:59:30.258 [main] INFO com.dataminr.karate - [print] [
]
1 Scenarios (1 passed)
14 Steps (14 passed)
0m2.539s





match each всегда будет передавать пустой массив. Думайте об этом как об умножении чего-либо на 0.
Просто добавьте это:
And match response != []
или:
And match response != '#[0]'
Просто хочу убедиться, что это правильно, на случай, если кто-то еще появится. Но я думаю, что это должно быть And match response != '#[0]' перед другими утверждениями? То, что вы описали, тоже пройдет, и я хотел бы поймать его до того, как он попадет в матч.
Цени это, Питер. Я добавил проверку для
And match response != [], чтобы исправить это в моем случае, вы видите какие-либо проблемы с этим или утверждение, которое вы предоставили, более надежно?