如何在Karate中更新含连字符的RequestBody变量?
问题解决:赋值带连字符的对象属性时的语法错误
问题还原
场景:验证关闭MFA时更换所有者手机号的OTP。读取validateOTP.json作为请求体(requestBody)后,执行requestBody.headers.X-lover-Merchant-Id = merchantId时触发语法错误,报错:
org.graalvm.polyglot.PolyglotException: SyntaxError: Unnamed:1:37 Invalid left hand side for assignment
错误原因
对象属性名包含连字符(-)时,不能使用点号(.)语法访问或赋值——这类脚本语言会把X-lover-Merchant-Id解析成X减lover减Merchant减Id的表达式,导致赋值左侧变成无效的运算式。
解决办法
改用方括号语法访问属性,把带连字符的属性名用字符串包裹:
requestBody.headers['X-lover-Merchant-Id'] = merchantId
这样就能正确识别完整的属性名,完成赋值操作。
内容的提问来源于stack exchange,提问作者Pulkit Agrawal
相关产品推荐
相关产品推荐

