【问题标题】:Wiremock - "URL does not match" even though it is sameWiremock - “URL 不匹配”,即使它是相同的
【发布时间】:2020-02-06 14:50:58
【问题描述】:

我遇到了一个问题,Wiremock 说我的 URL 不匹配,即使它们是相同的。显然我错过了一些东西。我做错了什么?

WireMock.stubFor(WireMock.get(WireMock.urlPathEqualTo("/test/url?bookingCode=XYZ123&lastName=TEST"))
    .willReturn(WireMock.aResponse()
    .withStatus(200))
)

下面是控制台日志。

-----------------------------------------------------------------------------------------------------------------------
| Closest stub                                             | Request                                                  |
-----------------------------------------------------------------------------------------------------------------------
                                                           |
GET                                                        | GET
/test/url?bookingCode=XYZ123&lastName=TEST                 | /test/url?bookingCode=XYZ123&lastName=TEST            <<<<< URL does not match
                                                           |
                                                           |
-----------------------------------------------------------------------------------------------------------------------

是因为我没有在匹配器中包含标头吗?

如果是,我怎样才能避免匹配标题?无论我发送什么标头,我都希望得到响应。

【问题讨论】:

    标签: java wiremock


    【解决方案1】:

    找到原因..WireMock.urlPathEqualTo("/test/url?bookingCode=XYZ123&amp;lastName=TEST") 不应该有查询参数。

    将其更改为 WireMock.urlPathEqualTo("/test/url") 解决了该问题。

    Documentation 表示允许。此外,日志URL does not match 引起了混乱。考虑到匹配检查是单独的,wiremock 可以为查询参数添加单独的日志。

    已创建问题:https://github.com/tomakehurst/wiremock/issues/1262

    【讨论】:

    • 尝试将方法更改为 urlEqualTo 代替 urlPathEqualTo。
    【解决方案2】:

    您可以使用withQueryParam 方法获取参数,同时保持urlPathEqualTo 方法专用于URL 路径。

    WireMock.stubFor(WireMock.get(WireMock.urlPathEqualTo("/test/url"))
             .withQueryParam("bookingCode", WireMock.equalTo("XYZ123"))
             .withQueryParam("lastName", WireMock.equalTo("TEST"))
             .willReturn(WireMock.aResponse()
             .withStatus(200))
    

    更多信息请参考http://wiremock.org/docs/request-matching/

    【讨论】:

      猜你喜欢
      • 2011-04-08
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多