каратэ - как сопоставить частичную строку поля в ответе? - PullRequest
0 голосов
/ 28 мая 2019

у меня есть ответ json, как показано ниже, где я просто хочу сопоставить строку "Гарри"

в autoComplete, идентификатор в autoCompleteAuthors

Response {"data": {"autoComplete":["Harry Hole"], "autoCompleteAuthors": [{"id": "search_authors_harry martinson", "title": "Harry Martinson", "type": "Authors"}]}}

Пожалуйста, предложитеКак выполнить эту проверку, используя содержит?

я пробовал, как показано ниже, который не работает * def autoComlete = get response.data.autoComplete [*] * match autoComlete содержит любое 'harry'

1 Ответ

1 голос
/ 28 мая 2019

Вы можете использовать match each и #regex маркер в карате,

Чувствительное к регистру совпадение

* match each $response.data.autoComplete == "#regex .*Harry.*"

Регистр с чувствительным соответствием

* match each $response.data.autoComplete == "#regex (?i).*harry.*"

Надеюсь, что это работает для вас.

Редактировать: Какпросили в комментариях передать имя

 * def query = 'harry'
 * match each $response.data.autoComplete == "#regex (?i).*" + query + ".*"
...