Karate 无法更新被调用功能中的变量
我尝试按照演示中的示例进行操作: 我需要从一个功能调用另一个功能,并将引用传递给更新。该引用用于从文件读取的JSON: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
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' }