karate.append не работает с условной проверкой - PullRequest
1 голос
/ 21 февраля 2020

Документы на это кажутся действительно простыми, но по некоторым причинам это не работает для меня. Я вижу, что условное вычисление выполняется правильно, но по какой-то причине значение массива не меняется.

* def requestBody =
    """
    [
        {
            "containerId": "#(randomContainer.containerId)",
            "status": "cancel",
            "closureDetails": {
                "closedDate": "#(closeRemovalDate)",
                "closedReason": "#(closedReason.description)"
            },
            "removeContainerInd": true,
            "containerRemovalDetails": {
                "removalDate": "#(closeRemovalDate)",
                "removalDateChangeReason": "CUSTOMER REQUEST"
            },
            "poNumber": "None",
            "notes": "Moving"
        }
    ]
    """
* def container2 =
    """
    {
        "containerId": "#(randomContainer.odsContainerId)",
        "status": "cancel",
        "closureDetails": {
            "closedDate": "#(closeContainer2)",
            "closedReason": "#(closedReason.description)"
        },
        "removeContainerInd": true,
        "containerRemovalDetails": {
            "removalDate": "#(removalContainer2)",
            "removalDateChangeReason": "Weather"
        },
        "poNumber": "123",
        "notes": "By the gate"
    }
    """

* if (<multiContainer>) {karate.append(requestBody, container2);} multiContainer установлено в значение true.

1 Ответ

2 голосов
/ 21 февраля 2020

Используйте appendTo вместо append.

Пример кода:

Feature: Validation

Scenario:

    * def requestBody =
        """
        [
            {
                "containerId": "#(randomContainer.containerId)",
                "status": "cancel",
                "closureDetails": {
                    "closedDate": "#(closeRemovalDate)",
                    "closedReason": "#(closedReason.description)"
                },
                "removeContainerInd": true,
                "containerRemovalDetails": {
                    "removalDate": "#(closeRemovalDate)",
                    "removalDateChangeReason": "CUSTOMER REQUEST"
                },
                "poNumber": "None",
                "notes": "Moving"
            }
        ]
        """
    * def container2 =
        """
        {
            "containerId": "#(randomContainer.odsContainerId)",
            "status": "cancel",
            "closureDetails": {
                "closedDate": "#(closeContainer2)",
                "closedReason": "#(closedReason.description)"
            },
            "removeContainerInd": true,
            "containerRemovalDetails": {
                "removalDate": "#(removalContainer2)",
                "removalDateChangeReason": "Weather"
            },
            "poNumber": "123",
            "notes": "By the gate"
        }
        """
    * def a = 1
    * if (a == 1) {karate.appendTo(requestBody, container2);}
    * print requestBody
...