空手道中的响应对象模板
Response object templates in Karate
有没有一种方法可以创建忽略字段内容的响应对象的模板结构?在这种情况下,我有兴趣验证是否存在所有相关字段名称,而不管相关数据如何。
可以在情景大纲中使用的 Templates 的无数据版本会很棒。
为了好奇,我正在验证 API 文档。
验证结构的示例响应:
"Clinics": [
{
"ClinicId": 1212,
"MondayOpen": null,
"MondayClose": null,
"TuesdayOpen": null,
"TuesdayClose": null,
"WednesdayOpen": null,
"WednesdayClose": null,
"ThursdayOpen": null,
"ThursdayClose": null,
"FridayOpen": null,
"FridayClose": null,
"SaturdayOpen": null,
"SaturdayClose": null,
"SundayOpen": null,
"SundayClose": null,
}]
我对 ClinicId 或其他字段的值不感兴趣。
我想知道 ClinicId、MondayOpen 等字段是否存在。
我不确定我是否理解,但让我试试。如果你有一个 JSON 如下:
* def json = { foo: 'bar', baz: 'ban' }
您可以按如下方式使用 #present
标记:
* match json == { foo: '#present', baz: '#present' }
现在,听起来您想动态确定所需的键:
* def keys = ['foo', 'baz']
您可以轻松地以编程方式创建所需的模板:
* def template = {}
* eval karate.forEach(keys, function(k){ template[k] = '#present' })
* match json == template
希望对您有所帮助!请注意,karate.forEach()
是 0.8.0 中的新增功能 - 同时您可以使用 0.8.0.RC9。
如果你参考这些例子,你可能会得到更多的想法:https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/search/search-complex.feature#L27
有没有一种方法可以创建忽略字段内容的响应对象的模板结构?在这种情况下,我有兴趣验证是否存在所有相关字段名称,而不管相关数据如何。 可以在情景大纲中使用的 Templates 的无数据版本会很棒。
为了好奇,我正在验证 API 文档。
验证结构的示例响应:
"Clinics": [
{
"ClinicId": 1212,
"MondayOpen": null,
"MondayClose": null,
"TuesdayOpen": null,
"TuesdayClose": null,
"WednesdayOpen": null,
"WednesdayClose": null,
"ThursdayOpen": null,
"ThursdayClose": null,
"FridayOpen": null,
"FridayClose": null,
"SaturdayOpen": null,
"SaturdayClose": null,
"SundayOpen": null,
"SundayClose": null,
}]
我对 ClinicId 或其他字段的值不感兴趣。 我想知道 ClinicId、MondayOpen 等字段是否存在。
我不确定我是否理解,但让我试试。如果你有一个 JSON 如下:
* def json = { foo: 'bar', baz: 'ban' }
您可以按如下方式使用 #present
标记:
* match json == { foo: '#present', baz: '#present' }
现在,听起来您想动态确定所需的键:
* def keys = ['foo', 'baz']
您可以轻松地以编程方式创建所需的模板:
* def template = {}
* eval karate.forEach(keys, function(k){ template[k] = '#present' })
* match json == template
希望对您有所帮助!请注意,karate.forEach()
是 0.8.0 中的新增功能 - 同时您可以使用 0.8.0.RC9。
如果你参考这些例子,你可能会得到更多的想法:https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/search/search-complex.feature#L27