character - 如果被字符包围,则嵌入的表达式不会被替换

标签 character karate

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

* 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"
  }
}

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

最佳答案

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

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

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

关于character - 如果被字符包围,则嵌入的表达式不会被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50802986/

相关文章:

java - 我们可以将请求文件名参数化到Karate中的Read方法吗?

karate - 无法调用 karate maven 项目的另一个模块中的实用程序

java - 如何将 Karate 与 testrail 集成

c - 读取字符数组

javascript - 从文本正文中获取字符串的行号

r - 在 R 中加载数据时将双列设为字符列

ios - UITextField仅允许输入英文字母

karate - 如何在 Karate DSL 中生成 GUID?

unicode - Karate - 如何处理 unicode 字符?