java - Wiremock:无法根据从 json 正文中查找所需参数来设置存根
问题描述
标题可能看起来有点混乱。在 Mocklab 中,我想要做的是创建一个存根,它会根据该请求的 json 主体上的特定参数或一组参数给我一个特定的响应。
假设请求的正文如下所示:
{
"A":{
"B":{
"key":"value",
"key":"value" },
"C":{
"key":"value",
"key":"value"
},
}
我希望它遍历整个主体,并在 C 中查找键值对,如果找到该对,则给我一个设置的响应。身体的其余部分是可选的。
解决方案
我将描述的大部分信息都取自这里。
我认为你可以这样做:
givenThat(post(urlEqualTo("/foo")).withRequestBody(matchingJsonPath("$.A.B.C.key", equalTo("value")))
如果您需要匹配多个 key:value 对,您可以添加额外withRequestBody
的 s.
givenThat(post(urlEqualTo("/foo")).withRequestBody(matchingJsonPath("$.A.B.C.key2", equalTo("value"))).withRequestBody(matchingJsonPath("$.A.B.C.key2, equalTo("value")))
如果您的逻辑开始变得更加棘手,我建议您考虑创建一个自定义匹配器
推荐阅读
- amazon-web-services - 没有区域的 Amazon EC2 客户端构建器
- jenkins - 每当我通过单击“立即构建”选项执行作业时,Jenkins“轮询 SCM”选项就会自动启用
- javascript - 在 d3.js v6+ 中将元素标记为单击
- mongodb - 在 Mongoose 中使用聚合和查找
- java - 如何测试使用文件创建时间的方法
- python - 按 2 列(一列带有整数,一列带有字母数字)对 pandas 数据帧进行排序,整数列优先
- c++ - 通过基类中的方法触发派生类的添加方法
- r - 如何在 Rstudio connect api 中获取与用户 guid 关联的名称?
- java - 避免 peek() 和 forEach() 的副作用
- c++ - C++ std::string 数组到无符号字符数组的转换