空手道框架文本匹配 startsWith 以及 contains with OR 子句

Karate framework text match startsWith as well as contains with OR clause

我正在解析所有名称对象的响应,它 returns 一个数组

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

And print getName

api 响应看起来像

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

我想匹配 getName[*] 是以 'map' 开头还是包含 'map' 也忽略大写字母。我可以使用 -

进行包含匹配
* def getLowerCase = karate.lowerCase(getName)
* match each getLowerCase[*] contains 'map'

但不确定如何将 startsWith 条件也放在同一行中。任何人都可以帮我解决逻辑问题。提前致谢!

给你:

* 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(_)'