首页 > 解决方案 > 空手道变量值是否随参考而改变?

问题描述

在下面的代码中,您可以看到变量 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)'}

标签: karate

解决方案


请看copy关键字:https ://github.com/intuit/karate#type-copy

* copy myHeaders = defaultHeaders

推荐阅读