如何将 WireMock 查询参数与任何字符串值匹配

问题描述 投票:0回答:1

我想做这样的事情:

    mockServer.givenThat(WireMock.get(URL_PATH)
        .withQueryParam("param", WireMock.any())
        .willReturn(WireMock.ok(SOMETHING)));

所以基本上,我不关心

param
参数中将传递什么,但我想确保它已通过。

问题在于WireMock中没有

any()
方法。我找不到类似的东西。

在 WireMock 类中深入挖掘,我发现有一个

AnythingPattern
扩展了
StringValuePattern
并且始终匹配。基本上,正是我所需要的,我可以通过使用构造函数实例化它来使用它,但它确实感觉不对(取决于具体实现)。

另一种解决方法是使用

matching(".*")
,这可以解决问题,但严格来说它是不一样的。

请问您知道更优雅的方法吗?

奇怪的是我在网上找不到任何关于它的讨论。所以我想,也许我问的根本没有意义? :-/

java wiremock
1个回答
0
投票

我认为

absent()
函数在这种情况下会很有用。将其与
not()
配对应该可以帮助您实现目标。

mockServer.givenThat(WireMock.get(URL_PATH)
    .withQueryParam("param", WireMock.not(WireMock.absent()))
    .willReturn(WireMock.ok(SOMETHING)));
© www.soinside.com 2019 - 2024. All rights reserved.