Привет, я пытаюсь добавить новый ключ и значение в json, используя karate.set, но он не работает, получая исключение как недопустимое имя переменной, ниже мой код:
Backgroung:
* def myjson = {name: 'test', start_date: '27-04-2017'}
* def localDateTime = Java.type("java.time.LocalDateTime").now()
Scenario:
* string endDate = 'myjson.end_date'
* def endDateTmp = karate.eval(endDate)
* eval if (endDateTmp == null) karate.set(myjson,'$.end_date',localDateTime)
Исключение:
java.lang.RuntimeException: javascript evaluation failed: if (endDateTmp == null) karate.set(myjson,'$.end_date',localDateTime)
at com.intuit.karate.ScriptBindings.eval(ScriptBindings.java:115)
at com.intuit.karate.ScriptBindings.updateBindingsAndEval(ScriptBindings.java:103)
at com.intuit.karate.ScriptBindings.evalInNashorn(ScriptBindings.java:88)
at com.intuit.karate.Script.evalJsExpression(Script.java:362)
at com.intuit.karate.StepDefs.eval(StepDefs.java:581)
Caused by: java.lang.RuntimeException: invalid variable name: {name:test, start_date:27-04-2017}
at com.intuit.karate.Script.validateVariableName(Script.java:553)
at com.intuit.karate.Script.setValueByPath(Script.java:1480)
at com.intuit.karate.Script.setValueByPath(Script.java:1455)
at com.intuit.karate.ScriptBridge.set(ScriptBridge.java:101)
at jdk.nashorn.internal.scripts.Script$23$\^eval\_.:program(<eval>:1)
Если ключ уже существует, значит, попытка установить работает, предложите мне, как добавить новый ключ, используя karate.set () или любой другой способ сделать это.
Заранее спасибо.