如何验证 stubMatchers 中数组的所有元素

How to validate all elements of an array in stubMatchers

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”,只要其中一个不为空,它就会return数据。所以我使用“$[0].duck, $[1].duck, $[2].duck”。我怎样才能使它更简洁?

jsonpath 没办法了。你做得对。