我正在尝试模拟一个在 POST 中接受 JSON 正文的 API 调用,它有两种可能的响应:
- 如果 body 包含
SearchCenter
属性,用响应 A 回答 - 如果 body 不包含
SearchCenter
,则回答 B
在Request Matching Wiremock 文档的章节它只展示了如何积极匹配 JSON,它没有展示如何匹配缺失的属性。
使用 SearchCenter
的示例请求:
{
"GeoCoordinatesResponseFormat": "DecimalDegree",
"ProviderID": "bla bla",
"SearchCenter": {
"GeoCoordinates": {
"DecimalDegree": {
"Latitude": "{{search_lat}}",
"Longitude": "{{search_lon}}"
}
},
"Radius": {{search_radius}}
}
}
没有 SearchCenter
的示例请求:
{
"GeoCoordinatesResponseFormat": "DecimalDegree",
"ProviderID": "bla bla"
}
最佳答案
为了匹配缺失的 JSON 属性,您可以将 matchingJsonPath
运算符与 absent()
结合使用,如下所示:
.withRequestBody(matchingJsonPath("$.SearchCenter", absent()))
关于json - Wiremock:如何匹配不具有特定属性的 JSON 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61750955/