karate - 空手道在graphql中替换
问题描述
我不确定为什么替换不起作用。我有一个 graphql 查询:
mutation updateLocation{
updateLocation(input: {
address:"<address>",
id:"<storeID>",
name:"<name>",
workingHours: [
{
closingTime:"<closingTime>",
isClosed:false,
openingTime:"<openingTime>"
}
.......
在功能文件中我有这个:
Given def query = read ('classpath:graphQL/updateStore.graphql')
* replace query.address = "<address>"
* replace query.regionId = "<regionId>"
* replace query.name = "<name>"
* replace query.closingTime = "<closingTime>"
* replace query.openingTime = "<openingTime>"
* replace query.storeID = storeId
And request { query : '#(query)'}
When method post
Then status 200
Examples:
|address |regionId |name |closingTime |openingTime |
|Adrs1 |286 |st1 |20:00 |10:00 |
替换适用于地址、区域标识和名称,但不适用于关闭时间或开放时间,这两个值保持为空。
另外,如果我像这样在后台定义标题:
Given header Authorization = 'Bearer ' + token
我仍然需要为同一场景中的每个请求添加此行,或者我遗漏了什么?
解决方案
为我工作:
* def query = 'closingTime:"<closingTime>"'
* replace query.closingTime = '20:00'
* match query == 'closingTime:"20:00"'
所以请遵循这个过程:https ://github.com/intuit/karate/wiki/How-to-Submit-an-Issue
请注意,* replace query.closingTime = closingTime
应该工作。Examples
我建议通过为列使用不同的名称来避免混淆。
推荐阅读
- flutter - 在不丢失本地数据的情况下更新 Android 应用程序
- selenium - 移动仿真不适用于 Chrome 版本 78.0.3904.97
- html - 删除带有日期输入的 vuetify v-text 字段上的向下箭头
- c++ - 有没有办法复制派生类指针的向量而不将其转换为基类?
- android - 以下项目选项已弃用并已删除:空
- c++ - 与 cmake 铿锵。target_include_directories "没有这样的文件或目录"
- arduino - Charlieplexing LED
- ssl - 如何在 CentOS 7/8 上信任自签名 SSL?
- csv - 要根据 RFC 4180 验证 CSV 文件,规则是“记录中的最后一个字段不能跟逗号”。错误的?
- python - 使用 Python 将文本中的行与未知行交换