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

时间:2017-09-27 11:09:01

标签: cucumber karate

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

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

]

现在我想检查回复是否包含" ab" in" b"节点。 在空手道中,我不知道怎么做。

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

1 个答案:

答案 0 :(得分:2)

我建议你仔细阅读文档,空手道在这方面有很大的灵活性。下面是一些示例,您可以将它们粘贴到*.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)'