空手道变量值是否根据参考进行了更改?
Is karate variable values are altered with reference?
在下面的代码中,您可以看到变量 defaultHeaders 被复制到一个名为 myHeaders 的新变量中。
现在,当更改 myHeaders 的值时,正在更改 defaultHeaders 变量的值。
这是正确的吗?我错过了一些基本的东西吗?请解释。
我希望原始的 defaultHeaders 将保持不变以供其他场景使用。
空手道版本:0.9.4
Feature: test one
Background:
* def defaultHeaders = { 'app-Id' : "defaultApp" }
@ScenarioOne
Scenario: scenario one
* def myHeaders = defaultHeaders
* print myHeaders \ prints { "app-Id": "defaultApp" }
* myHeaders["app-Id"] = 'MyNewAppId'
* print myHeaders \ prints { "app-Id": "MyNewAppId" }
* print defaultHeaders \ prints { "app-Id": "MyNewAppId" }
* print myHeaders \ prints { "app-Id": "MyNewAppId" }
* def calltoSecond = call read('featureTwo.feature@ScenarioTwo') { customHeader: '#(myHeaders)'}
请查看copy
关键词:https://github.com/intuit/karate#type-copy
* copy myHeaders = defaultHeaders
在下面的代码中,您可以看到变量 defaultHeaders 被复制到一个名为 myHeaders 的新变量中。 现在,当更改 myHeaders 的值时,正在更改 defaultHeaders 变量的值。
这是正确的吗?我错过了一些基本的东西吗?请解释。
我希望原始的 defaultHeaders 将保持不变以供其他场景使用。
空手道版本:0.9.4
Feature: test one
Background:
* def defaultHeaders = { 'app-Id' : "defaultApp" }
@ScenarioOne
Scenario: scenario one
* def myHeaders = defaultHeaders
* print myHeaders \ prints { "app-Id": "defaultApp" }
* myHeaders["app-Id"] = 'MyNewAppId'
* print myHeaders \ prints { "app-Id": "MyNewAppId" }
* print defaultHeaders \ prints { "app-Id": "MyNewAppId" }
* print myHeaders \ prints { "app-Id": "MyNewAppId" }
* def calltoSecond = call read('featureTwo.feature@ScenarioTwo') { customHeader: '#(myHeaders)'}
请查看copy
关键词:https://github.com/intuit/karate#type-copy
* copy myHeaders = defaultHeaders