如果节点包含来自 json 响应的预期值,如何检查空手道

How to check in karate if a node contains the expected value from the json response

场景是我得到以下 JSON 响应,例如:

[
    {
        "a": "a",
        "b": "a",
        "c": "a",
    }
    {
        "a": "ab",
        "b": "ab",
        "c": "ab",
    }

]

现在我想检查响应是否包含 "b" 节点中的 "ab"。 在空手道中,我不知道该怎么做。

给定路径'url' 当方法得到 然后状态200 并匹配响应 == ??

我建议你仔细阅读文档,空手道在这方面有很大的灵活性。以下是一些示例,您可以将它们粘贴到您的 *.feature 文件中,并亲自查看这些示例:

* def response =
"""
[
    {
        "a": "a",
        "b": "a",
        "c": "a",
    },
    {
        "a": "ab",
        "b": "ab",
        "c": "ab",
    }
]
"""
* match response[1] contains { b: 'ab' }
* match response contains { a: 'ab', b: 'ab', c: 'ab' }
* match response contains { a: '#ignore', b: 'ab', c: '#notnull' }
* def expected = { b: 'ab' }
* match response contains '#(^expected)'