Соответствие текста каркаса начинается как с, так и с предложением OR - PullRequest
0 голосов
/ 20 сентября 2019

Я анализирую ответ для всех объектов имен, и он возвращает массив

* def getName = response.source[*].name

And print getName

Ответ API выглядит как

[print] [
"Map of USA",
"Global map",
"Check map of RSA"
]

Я хочу сопоставить, является ли getName [*] начинается с «карты» или содержит «карту», ​​игнорируя также верхний регистр.Я могу выполнить сопоставление содержимого, используя -

* def getLowerCase = karate.lowerCase(getName)
* match each getLowerCase[*] contains 'map'

Но не уверен, как поставить условие startWith также в той же строке.Может ли кто-нибудь помочь мне с логикой.Заранее спасибо!

1 Ответ

1 голос
/ 20 сентября 2019

Вот, пожалуйста:

* def names = ['map foo', 'foo map', 'f map oo']

* def hasMap = function(x){ return x.startsWith('map') || x.toLowerCase().contains('map') }
* match each names == '#? hasMap(_)'
...