我正在读取一个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在对象的匹配关键字中;ONLY";这是字符串化的值。
query() {
blabla(
varToReplace: [{"value":"boemba", "matching":"ONLY"}]
) {
boemba {
id
)
}
}
}
是否有一种方法可以将值替换为与提供的值完全相似的值,而不将其全部字符串化?
replace
关键字处理纯字符串,不支持Java或JS类型。所以试试这个(注意单引号(:
* replace query.varToReplace = '[{ value: "boemba", matching: ONLY }]'
请注意,如果内置的replace
不适合您,您可以编写自己的JS实用程序函数(甚至Java(。