Как я могу использовать логическое ИЛИ для json ответа массива - PullRequest
1 голос
/ 07 января 2020

У меня есть сценарий, в котором ответ API - массив JSON. Ниже я привел пример ответа JSON, где «test» - это ключ, доступный по всему массиву. Поэтому я должен написать шаг Feature, где я должен проверить значение с нулевым и регулярным выражением за один шаг. Если я проверяю reg exp и значение равно нулю или наоборот. Шаг не пройден.

Например:

* match each $..test== '#regex ^[ A-Za-z0-9-]*$'                                                                                                           
* match each $..test== null

Я пытался выполнить следующий шаг, но он не удался.

* match each $..test== '#regex ^[ A-Za-z0-9-]*$' | test == null


"response": [
{
   "test": "Anand07"

},{
   "test": null
},{
   "test": "Archu06"
}] 

Я ценю вашу помощь.

1 Ответ

1 голос
/ 07 января 2020

Код образца:

Feature: Validation

    Scenario:
        * def isValid = function(x){ return x == null || karate.match(x,'#regex ^[ A-Za-z0-9-]*$').pass }
        * def response =
            """
            [
                {
                    "test": "Anand07"
                },
                {
                    "test": null
                },
                {
                    "test": "Archu06"
                }
            ]
            """
        * match each response[*].test == '#? isValid(_)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...