Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Karate 无法更新被调用功能中的变量_Karate - Fatal编程技术网

Karate 无法更新被调用功能中的变量

Karate 无法更新被调用功能中的变量,karate,Karate,我尝试按照演示中的示例进行操作: 我需要从一个功能调用另一个功能,并将引用传递给更新。该引用用于从文件读取的JSON: Background: * url url * header Authorization = token * def payload = read('event.json') * set payload.createdByUser = 'karate' Scenario: Call another feature with arg

我尝试按照演示中的示例进行操作: 我需要从一个功能调用另一个功能,并将引用传递给更新。该引用用于从文件读取的JSON:

  Background: 
    * url url
    * header Authorization = token
    * def payload = read('event.json')
    * set payload.createdByUser = 'karate'

  Scenario: Call another feature with arg
    * call read('classpath:common/swap-json-elements.feature') payload
    * print payload
在我的swap-json-elements.feature中:

  Background: 
    * set new = payload.old
    * set payload.new= payload.old
    * set payload.old= new
这是行不通的。文档中很清楚,当使用“set”时,共享范围是共享的,而“def”将创建一个新变量,并且永远不会更新共享范围


我错过了什么

如果传递一个参数,它将按值传递。使用“共享范围”调用
时,通常不需要传递参数。因为所有变量都是可见的。尝试一个更简单的例子,请注意
=
符号周围的空白

主要功能

Feature:

Background:
* def json = { foo: 'bar' }
* call read('called.feature')

Scenario:
* match json == { foo: 'baz' }
调用。功能

Feature:

Scenario:
* set json.foo = 'baz'
* match json == { foo: 'baz' }