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/