Wiremock - “URL 不匹配”,即使它是相同的

Abb*_*ese 12 java wiremock

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

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

下面是控制台日志。

-----------------------------------------------------------------------------------------------------------------------
| Closest stub                                             | Request                                                  |
-----------------------------------------------------------------------------------------------------------------------
                                                           |
GET                                                        | GET
/test/url?bookingCode=XYZ123&lastName=TEST                 | /test/url?bookingCode=XYZ123&lastName=TEST            <<<<< URL does not match
                                                           |
                                                           |
-----------------------------------------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

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

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

dha*_*310 19

您可以使用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))
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请参阅http://wiremock.org/docs/request-matching/


Abb*_*ese 14

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

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

文档说这是允许的。此外,日志URL does not match也造成了混乱。考虑到匹配检查是单独的,wiremock 可以为查询参数添加单独的日志。

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

  • 尝试将方法更改为 urlEqualTo 代替 urlPathEqualTo。 (4认同)