例如,我试图使用匹配包含来验证模式响应和数据类型,有时它返回null,有时返回字符串。我正在尝试下面的操作,但我得到的断言失败了,因为它没有计算为true。
* match each $response.data.Results contains
"""
{
"providerID": '#number',
"firstName": "#? _ == '#string' || _ == '#null'",
"lastName": '#string',
"mI": "#? _ == '#string' || _ == '#null'",
"title": '#string',
"name": '#string',
"nameLFMT": '#string',
"status": '#string',
"specialties": '#array',
"locations": '#array',
"institutions": '#array',
"acceptNewPatient": '#string',
"imageUri": '#string',
"nearestLatitude": '#number',
"nearestLongitude": '#number'
}
"""
例如,为“firstName”返回的数据为“firstName”:null,
在比赛之前,我向每个人发送以下信息:
Scenario: SearchResults
#Verify 200 response status returned
Given text query =
"""
{
Results: getSearchResults(searchLatitude:"48.942833",
searchLongitude: "-119.984549",
providerType: "Primary Care Physicians",
sortBy: "distance",
maxDistance:"600",
skip: 0,
take: 10) {
providerID
firstName
lastName
mI
title
name
nameLFMT
status
specialties
locations
institutions
acceptNewPatient
imageUri
nearestLatitude
nearestLongitude
}
}
"""
And request { query: '#(query)' }
When method post
Then status 200
我不是在定义模式,我还没有弄清楚如何做到这一点,所以我不确定这是否是我的问题。我知道我应该这样做,但我还在学习。
好吧,我看到了一个问题:
"firstName": "#? _ == '#string' || _ == '#null'"
那是行不通的。#?
后面的部分必须是有效的JavaScript表达式。如果您不熟悉JS,这可能很难理解,但是#string
和friends是特定于空手道match
关键字的,而不是在JavaScript中工作的。
因此,上面一行要做的是检查firstname
的值是否等于文字字符串#string
。
"firstName": "##string"
这是一种方便,双##
表示“可选”,它将同时匹配字符串或null
。
编辑:有关高级案例,请阅读:https://stackoverflow.com/A/50350442/143475
我有以下API响应样本 根据上面的回答,我的测试表明,每当我点击API请求时,第11个ID是SMITH,第10个ID是JAMES 所以我想把它存储在一个表中,并根据实际的响应进行断言 现在我该如何一个接一个地匹配?与first类似,它解析API响应中的第一个ID和第一个名称,并与表first ID和表first name匹配 请分享从空手道做它的任何方便的方式
我想要帮助验证API响应使用空手道框架。我有相互“独立”的应用编程接口。当我打那个特定的API得到了不同参数的响应(没有单一的匹配从请求参数和响应参数)。 现在我想验证响应参数值。 示例:请求:“方法”帖子 学校名称:“abcd”注册日期:“1:10:2010” 回复:原则名称:“pqrs”原则电子邮件idpqrs@gmail.com 现在我想验证“主名称”不应该为空 我已经像这样实现了,但它不起
我必须验证一个json是否包含另一个json,就像这个测试: 如果失败,则正确,如下所示? 谢谢
我需要将纪元时间转换为人类可读的日期 时间戳值为:='1685595600' 需要像这样转换上面的时间戳 日期=01月=06年=2023年 应该怎么做?
我想使用“faker”库在JSON文件中生成假数据,如下所示。 空手道配置。js,我做了以下工作: 在sample.json: 但我在“空手道配置”中遇到了类似“找不到”require“关键字的错误。js' 请帮忙。
我可以有一个回应: 如果用户没有狗 或者 如果用户有狗。 在我的特写中,我有: prb是指如果我有一个没有狗的用户响应,我有以下错误: 如何检查模式中的属性“dog”?谢谢