如何解决在线模拟中请求正文的多个匹配项
最近在wiremock (http://wiremock.org/docs/request-matching/) 中学习到请求匹配。好奇当一个请求的 body 匹配多个映射时会发生什么(为相同的 url 路径定义不同的条件并返回不同的 json 响应)?
解决方法
从技术上讲,WireMock 永远不会匹配两次——一旦找到单个匹配项,它就会返回该匹配项。根据我自己使用单独映射文件的测试,这个通常是最近添加的映射(我不知道这如何以编程方式创建存根,但我猜是最近添加的存根将被匹配并返回)。
为了避免这种歧义,您可以采用一些策略,但我个人最喜欢使用 priority
字段以及特定和一般映射。
{
"priority": 1,"request": {
"url": "/test","queryParameters": {
"search_term": {
"equalTo": "WireMock"
}
}
},"response": {
"status": 201
}
}
{
"priority": 10,"queryParameters": {
"search_term": {
"matches": "*"
}
}
},"response": {
"status": 204
}
}
有关优先级 can be found here 的更多信息。
我还质疑您不应该有两个都匹配的特定映射——匹配器应该有足够的差异以将两者分开。如果您确实需要两个相同的匹配项,以便模拟数据更改或其他一些工作流程,you can use scenarios to achieve this。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。