2016-12-02 50 views
0

在旧版本Wiremock的,我们可以TE的queryString追加到匹配的网址是这样的:多值的queryString在Wiremock

wireMockRule.stubFor(get(urlPathEqualTo("/rest/customer/find?custId=1&custId=2")) // 
       .willReturn(aResponse()) // 

,但现在,我们升级到最新版本,我们势必会动用的withQueryParam方法映射生成器 - wiremock不理解附加参数了。但是,我们如何实现这样的行为?我无法弄清楚如何在存根中插入多值参数。

Integer[] custIds = {1, 2}; 
wireMockRule.stubFor(get(urlPathEqualTo("/rest/customer/find")) // 
       .withQueryParam("userIds", equalTo(custIds.toString())) // 
       .willReturn(aResponse()) // 

当我们调用的URL与路径 “/ REST /客户/找到?CUSTID = 1 & CUSTID = 2” restTemplate这是行不通的。

+0

WireMock还了解到附加PARAMS如果你使用'urlEqualTo'。这并没有改变。 – Tom

+0

@Tom它似乎并没有工作。见下面的答案。 –

回答

-1

试图追加查询参数在此错误的URL结果:

2016-12-07 10:31:49.205 ERROR 1835 --- [qtp846274760-33] WireMock         SFID= : Request was not matched: 
{ 
    "url" : "/rest/user/list?userIds=5&userIds=6&userIds=7&userIds=8", 
    "absoluteUrl" : "http://localhost:8889/rest/user/list?userIds=5&userIds=6&userIds=7&userIds=8", 
    "method" : "GET", 
    "clientIp" : "127.0.0.1", 
    "headers" : { 
    "User-Agent" : "Java/1.8.0_91", 
    "Connection" : "keep-alive", 
    "Host" : "localhost:8889", 
    "Accept" : "application/json, application/*+json" 
    }, 
    "cookies" : { }, 
    "browserProxyRequest" : false, 
    "loggedDate" : 1481113909179, 
    "bodyAsBase64" : "", 
    "body" : "", 
    "loggedDateString" : "2016-12-07T12:31:49Z" 
} 
Closest match: 
{ 
    "url" : "http://localhost:8889/rest/user/list?userIds=5&userIds=6&userIds=7&userIds=8", 
    "method" : "GET" 
}