感谢阅读。我正在使用空手道进行后端测试,我需要在我的请求中更新地图内数组的 de 值。但我做不到
我正在使用这个请求;
{
"data": [
{
"startDate": "date",
"endDate": "date",
"displayDate": "date",
"partnerId": "partner",
"type": "type",
"regions": ["QQ"
],
"promotionId": "promotion",
}
]
}
我想更新/覆盖“区域”值。但我不能让空手道访问它,它永远找不到。我试过:
* set request.data.regions = newValue
* set request.data[*].regions = newValue
* set request[*].regions = newValue
* def updateRegion =
"""
function(){karate.appendTo(request.data[*].regions, newValue) }
"""
* karate.foreach(request, updateRegion)
没有任何作用。值得一提的是,我能够使用以下方法获取区域数据:
* def value = get request.data[*].regions
问题是要么 Karate 不识别 jsonpath 获取 key,并抛出错误:
org.graalvm.polyglot.PolyglotException: SyntaxError: Unnamed:1:32 Expected an operand but found *
karate.appendTo(blankOffer.data[*].regions, 'table.region')
或者它只是没有找到所述键并返回空值:
Cannot invoke "com.intuit.karate.core.Variable.isList()" because "var" is null
我做错了什么??请帮忙!
你需要注意结构。试试这个,很简单 JS:
* def body =
"""
{
"data": [
{
"startDate": "date",
"endDate": "date",
"displayDate": "date",
"partnerId": "partner",
"type": "type",
"regions": [
"QQ"
],
"promotionId": "promotion"
}
]
}
"""
* body.data[0].regions = ['foo', 'bar']
* print body