Contract.make {
    request {
        method 'POST'
        urlPath '/for/post'
        body("""
            [
                {
                    "duck": "1"
                },
                {
                    "duck": "2"
                },
                {
                    "duck": "3"
                }
            ]
        """)
        stubMatchers {
            jsonPath('$[*].duck', byRegex(nonEmpty()))
//            jsonPath('$[0].duck', byRegex(nonEmpty()))
//            jsonPath('$[1].duck', byRegex(nonEmpty()))
//            jsonPath('$[2].duck', byRegex(nonEmpty()))
        }
        headers {
            contentType(applicationJson())
        }
    }
    response {
        status 200
        body([
                duck: 123
        ])
        headers {
            contentType(applicationJson())
        }
    }
}


如果我使用“ $ [*]。duck”,只要其中一个不为空,它将返回data。因此,我使用“ $ [0] .duck,$ [1] .duck,$ [2] .duck”。如何使其更简洁?

最佳答案

由于jsonpath,没有其他方法。你做得很好。

关于java - 如何在stubMatchers中验证数组的所有元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51455544/

10-11 04:14