我面临一个问题,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
| 归档时间: |
|
| 查看次数: |
3619 次 |
| 最近记录: |