【问题标题】:Replace placeholder in graphql ignores enums and stringifies在 graphql 中替换占位符忽略枚举和字符串化
【发布时间】:2020-12-01 08:42:32
【问题描述】:

我正在读取一个 graphql 查询并将其存储在一个变量中,然后我在存储的 graphql 中替换一个变量。替换是字符串化的,虽然里面有一个枚举。

query() {
  blabla(
    varToReplace: < varToReplace >
    queryOptions: {}
  ) {
    boemba {
      id
      )
    }
  }
}

我的阅读场景部分如下所示

...
  Given def query = read(karate.properties['user.dir'] + myGraphQL)
  *replace query. varToReplace = [{value: "boemba", matching: ONLY}]
...

但是实际执行的查询不只包含在对象的匹配键中,而是“ONLY”,它是字符串化的值。

query() {
  blabla(
    varToReplace: [{"value":"boemba", "matching":"ONLY"}]
  ) {
    boemba {
      id
      )
    }
  }
}

有没有办法让值与提供的值完全相似,而不是全部字符串化?

【问题讨论】:

    标签: graphql karate


    【解决方案1】:

    replace 关键字处理纯字符串,不支持 Java 或 JS 类型。所以试试这个(注意单引号):

    * replace query.varToReplace = '[{ value: "boemba", matching: ONLY }]'
    

    请注意,如果内置的 replace 不适合您,您可以编写自己的 JS 实用函数(甚至 Java)。

    【讨论】:

      猜你喜欢
      • 2019-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多