在空手道 V1.1.0 org.graalvm.polyglot.PolyglotException 中出现错误:TypeError: invokeMember (add) on [] failed due to: Message not supported

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

我一直在使用空手道 v0.9.6。最近升级到1.1.0版本

一件事很麻烦,就像风箱一样,

* def responsevalue = response.body
* def length = responsevalue.length
* def number = []
* eval for(var i = 0;i < length; i++) if(response.body[i].availablenumber > 10000) number.add(response.body[i].Id)

Error:- org.graalvm.polyglot.PolyglotException: TypeError: invokeMember (add) on [] failed due to: Message not supported.

我确定我遗漏了发行说明中的重要部分。我真的很感激这个问题的任何解决方案。

非常感谢!

testing karate gherkin
1个回答
0
投票

首先我想说不推荐这样的循环。改用

filter()
操作:

* def number = response.body.filter(x => x.availablenumber > 10000)

参考:https://github.com/karatelabs/karate#json-transforms

无论如何,你需要做的改变是:

number.push()
而不是
number.add()
https://github.com/karatelabs/karate/wiki/1.0-upgrade-guide#java-api-s-for-maps -and-lists-are-no-longer-visible-within-js-blocks

© www.soinside.com 2019 - 2024. All rights reserved.