karate.append不适用于条件检查

问题描述 投票:0回答:1

此文档似乎非常简单,但由于某些原因,它对我不起作用。我可以看到该条件的计算正确,但是由于某种原因,数组值没有改变。

* 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。

karate nashorn
1个回答
0
投票

使用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
© www.soinside.com 2019 - 2024. All rights reserved.