【发布时间】:2021-10-17 11:48:09
【问题描述】:
我有这份合同
org.springframework.cloud.contract.spec.Contract.make {
request {
method 'POST'
url ('/v1/foo') {
body([
fooList: [[
id: anyUuid()
]]
])
}
headers {
contentType applicationJson()
}
}
response {
status OK()
}
}
当我像下面这样用 Postman 测试它时,它按预期工作
{
"fooList": [
{ "id": "dd2b602a-5052-4203-9e8c-3f1dfb49b860" },
{ "id": "dd2b602a-5052-4203-9e8c-3f1dfb49b861" }
]
}
但是当我试图让它失败并像下面这样只更改一个 id 时,它也可以工作!!
{
"fooList": [
{ "id": 1 },
{ "id": "dd2b602a-5052-4203-9e8c-3f1dfb49b861" }
]
}
当所有 id 都不正确时它失败了!!
{
"fooList": [
{ "id": 1 },
{ "id": 1 }
]
}
喜欢这个
Request was not matched
=======================
-----------------------------------------------------------------------------------------------------------------------
| Closest stub | Request |
-----------------------------------------------------------------------------------------------------------------------
|
POST | POST
/v1/processOdr | /v1/processOdr
|
Content-Type [matches] : application/json.* | Content-Type: application/json
|
$.['fooList'][*][?(@.['id'] =~ | { <<<<< Body does not match
/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9] | "fooList": [
{12}/)] | {
| "id": 1
| },
| {
| "id": 1
| }
| ]
| }
|
-----------------------------------------------------------------------------------------------------------------------
如何处理带有嵌套数组的请求体?
【问题讨论】:
标签: spring spring-cloud spring-cloud-contract