karate.append 不使用条件检查
karate.append not Working with Conditional Check
这方面的文档看起来非常简单,但出于某种原因,它对我不起作用。我可以看到条件评估正确,但由于某种原因,数组值没有改变。
* 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
设置为真。
使用 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
这方面的文档看起来非常简单,但出于某种原因,它对我不起作用。我可以看到条件评估正确,但由于某种原因,数组值没有改变。
* 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
设置为真。
使用 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