【问题标题】:How can I dynamically modify a file before passing it to karate.toJavaFile?在将文件传递给 karate.toJavaFile 之前如何动态修改文件?
【发布时间】:2023-01-11 23:32:07
【问题描述】:

看到 karate.toJavaFile 需要一个路径,有没有什么办法可以在将它作为参数提供给方法之前修改一个基本文件?

例如,我在一个文件中有这个 xml:

<object> <id>123</id> <name>Bob</name> </object>

问题是,在将此文件提供给 karate.toJavaFile 之前,我需要将 id 字段中的 123 替换为我从另一个 GET 请求中获得的真实 id。不幸的是,我受限于 Java 方法。

我尝试将 xml 读入一个变量,然后使用 * set 修改其内容,但这无济于事,因为我需要提供路径而不是 karate.toJavaFile 的变量。

【问题讨论】:

    标签: javascript java xml file karate


    【解决方案1】:

    首先,我会尝试在不编写任何文件的情况下实现您最终想要做的事情。如此处所述:https://stackoverflow.com/a/54593057/143475

    但是你应该能够通过保存一个临时文件来做到这一点:

    * def data = <foo>bar</foo>
    * set data/bar = 'baz'
    * def file = karate.write(data, 'temp.xml')
    

    那行不通吗? karate.write() 返回一个 java.io.File 实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多