2016-12-02 54 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" 
}