当前位置: 首页 > 知识库问答 >
问题:

空手道API框架-如何断言一个键的空值,如果该值为空,则断言其他键不应出现

马梓
2023-03-14

在空手道中有什么方法可以检查如果任何值作为空字符串出现,那么响应中的其他键不应该出现-

例如,如果您看到下面的示例json响应,其中一个结果[*]。说明[*]. text为空,并且在同一节点上预览结果[*]。source.preview不存在

所以,空手道中任何直接的解决方案都可以检查是否有描述。文本为“,则预览不应出现在该节点上

 {
    "total": 10,
    "count": 10,
    "results": [
        {
            "id": "1",
            "source": {
                "type": "general",
                "Description": [
                    {
                        "text": ""
                    }
                ]
            }
        },
        {
            "id": "2",
            "source": {
                "type": "general",
                "preview": "Your name",
                "Description": [
                    {
                        "text": "Your name is Karate"
                    }
                ]
            }
        }
    ]
}

共有1个答案

呼延骏俊
2023-03-14

干得好。如果有任何不清楚的地方,请阅读文档:

* def isValid = function(x){ var desc = x.source.Description[0].text; return desc === '' ? !x.preview : true }
* match each response.results == '#? isValid(_)'
 类似资料:
  • 我有下面的xml响应,我需要使用空手道断言“result”值 我能够获取“值”对象的数据,但不能获取“结果”元素的数据。

  • 我得到的异常显示为“path$.result.(#value)actual:null应为{firstName:'#string'lastName:'#string'}”

  • 我有一个类型为的变量 在一个函数中,我检查它是否为,并希望以后使用它,而不必每次调用都必须。例如,在Kotlin中,IDE识别这样的检查,并在之后断言变量不能为。在C#中有这样的方法吗? 编辑:

  • SOAP响应当前是从预期文件断言的。 有没有办法排除一些动态的字段? 断言失败:路径/soap:header/soap:time

  • 在下面的json有效负载中,我如何通过空手道断言D节点不在响应中。

  • 我有以下API响应样本 根据上面的回答,我的测试表明,每当我点击API请求时,第11个ID是SMITH,第10个ID是JAMES 所以我想把它存储在一个表中,并根据实际的响应进行断言 现在我该如何一个接一个地匹配?与first类似,它解析API响应中的第一个ID和第一个名称,并与表first ID和表first name匹配 请分享从空手道做它的任何方便的方式