【问题标题】:Embedded expressions not replaced if surrounded by characters如果被字符包围,嵌入的表达式不会被替换
【发布时间】:2018-06-11 17:16:24
【问题描述】:

在以下简化且非常基本的场景中,嵌入表达式在附加、前置或被字符包围时不会被替换:

* def jobId = '0001'
* def out = 
        """
        {
            "jobId": "#(jobId)",
            "outputMetadata": {
                "fileName_OK": "#(jobId)",
                "fileName_Fail_1": "some_text_#(jobId)",
                "fileName_Fail_2": "#(jobId)-and-some-more-text",
                "fileName_Fail_3": "prepend #(jobId) and append"
            }
        }
        """
* print out

执行场景返回:

{
  "jobId": "0001",
  "outputMetadata": {
    "fileName_OK": "0001",
    "fileName_Fail_1": "some_text_#(jobId)",
    "fileName_Fail_2": "#(jobId)-and-some-more-text",
    "fileName_Fail_3": "prepend #(jobId) and append"
  }
}

它是功能、限制还是错误?或者,我错过了什么?

【问题讨论】:

    标签: character karate


    【解决方案1】:

    这是设计的!你可以这样做:

    "fileName_Fail_2": "#(jobId + '-and-some-more-text')"
    

    任何有效的 JS 表达式都可以填充到嵌入式表达式中,因此这不是限制。这仅适用于 JSON 字符串值或整个 RHS 是引号内的字符串并保持解析简单时。希望对您有所帮助!

    【讨论】:

    • 太棒了!它有助于!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-03-18
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2011-08-21
    • 2013-10-05
    相关资源
    最近更新 更多