karate - karate.append not Working with Conditional Check
问题描述
The docs on this seem really straightforward, but for some reason it's not working for me. I can see that the conditional evaluates correctly, but for some reason the array value doesn't change.
* 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
is set to true.
解决方案
使用 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
推荐阅读
- android - 当活动/应用程序处于后台时,如何在 webview(android)的后台运行“youtube.com”?
- java - Selenium (Java) - 根据其他属性获取列表 ID
- python - 如何将包含 null 和非 null 的行分成两个不同的 DataFrame?
- c++ - 是否可以在 C++ 中将参数从“const char []”转换为“char *”?
- ios - 如何设置自定义collectionView Cell Frame?
- google-apps-script - getData 方法返回的最大记录数是多少
- php - 寻找命名空间“安全”,没有找到
- android - 构建风味时如何更改android中的导航抽屉菜单?
- c++ - 从模板化父类中的派生内部类访问受保护的成员变量
- python - Flask 中接收到的图像的形状