Karate: Match JSON Массив ответов, где порядок массива отличается при каждом попадании - PullRequest
1 голос
/ 17 февраля 2020

У меня есть сценарий, в котором часть массивов ответов является ответом от дочернего API. Ответ дочернего API выглядит следующим образом, но нет определенного порядка c. И мне нужно проверить, присутствует ли ответ дочернего API в родительском API (независимо от порядка элементов в дочернем API). Я следовал за этим Каратэ - Совпадение двух динамических c ответов потока, но это не работает в моем случае.

* def response1 =

    """
   {
    "array1": [
        {
            "element": {
                "id": "A1",
                "array11": [
                    {
                        "uid": "u123",
                        "gid": [
                            "g1"
                        ]
                    }
                ]
            }
        },
        {
            "element": {
                "id": "A2",
                "array11": [
                    {
                        "uid": "u124",
                        "gid": [
                            "g2"
                        ]
                    }
                ]
            }
        }
    ]
}
"""
* def response2 =

    """
 {
    "array1": [
        {
            "element": {
                "id": "A2",
                "array11": [
                    {
                        "uid": "u124",
                        "gid": [
                            "g2"
                        ]
                    }
                ]
            }
        },
        {
            "element": {
                "id": "A1",
                "array11": [
                    {
                        "uid": "u123",
                        "gid": [
                            "g1"
                        ]
                    }
                ]
            }
        }

    ]
}
    """

1 Ответ

1 голос
/ 17 февраля 2020

Это одна строка:)

* match response2.array1 contains response1.array1
* 1003. Но также прочитайте эту спецификацию c часть документов: https://github.com/intuit/karate#contains -short-cut

И этот пример: https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/graphql/graphql.feature

...