微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在线模拟中请求正文的多个匹配项

如何解决在线模拟中请求正文的多个匹配项

最近在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 举报,一经查实,本站将立刻删除。