不知道如何在空手道中验证响应?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不知道如何在空手道中验证响应?相关的知识,希望对你有一定的参考价值。
我正在尝试编写一些空手道测试,以检查响应是否符合预期的结构。例如,有一个看起来像这样的对象:
{
'true|true':'disabled',
'true|false':'locked',
'false|false':'enabled',
'false|true':'disabled',
'default':'enabled'
}
但是,键和值可以是任何字符串。必须有一种指定此方法的方法,但是我不知道如何以通用方法进行此操作。
本质上,我想测试的是1)对象不为空,2)每个键和值都是一个字符串(不是对象,也不为null)。
基本匹配如下所示:
* def objects = $fields..objects
And match each objects ==
"""
{
key1: '#? isString(_)',
key2: '#? isString(_)'
}
"""
似乎必须预先知道键的名称,所以匹配表达式可能不是测试此键的适当方法。
答案
您可以像这样提取所有键:
* def kays = karate.keysOf(object)
所以一旦有了,就可以开展业务:
* def foo = { a: 1, b: 2 }
* def keys = karate.keysOf(foo)
* match each keys == '#string'
* assert keys.length > 0
请参阅JSON转换以获取其他想法,例如karate.forEach()
:https://github.com/intuit/karate#json-transforms
以上是关于不知道如何在空手道中验证响应?的主要内容,如果未能解决你的问题,请参考以下文章