我正在嘗試使用 wiremock 測驗來測驗一個小型服務。
我對存根出大多數第三方服務的URL沒有問題,但是當我在使用客戶庫時遇到了問題,這些客戶庫的sanbox URL是硬編碼的。
目前的例子是針對Braintree的。 我想為對 "https://api.sandbox.braintreegateway.com:443 "的呼叫存根一個回報。 我不能在測驗屬性中覆寫該值。
(Ref for the hardcoding https://github.com/braintree/braintree_java/blob/9f619bb0dd019921caed1f344046078469fbf1f8/src/main/java/com/braintreegateway/Environment.java)
我是否有辦法將 wiremock 配置為知道對 https://api.sandbox.braintreegateway.com 的呼叫:并回傳一個存根的回應?
uj5u.com熱心網友回復:
我從來沒有使用過Braintree SDK,但從我所看到的情況來看,你通過向BraintreeGateway物件提供Environment來使用它。https://github.com/braintree/braintree_java/tree/master#quick-start-example
我將創建一個包含Wiremock URL的專用測驗Environment實體,并在我的集成測驗中向BraintreeGateway提供它。
uj5u.com熱心網友回復:
假設Braintree lib中的HTTP客戶端尊重Java的代理設定系統屬性,你可以將WireMock配置為一個前向代理(或者WireMock檔案中所說的瀏覽器代理),允許它攔截對任何外部域的呼叫。
本檔案解釋了如何使用新的代理configurer實用類來實作這一點。http://wiremock.org/docs/multi-domain-mocking/。
基本上,你想做的事情是:
JvmProxyConfigurer.configureFor(wireMockServer)。
wireMockServer.stubFor(get("/stuff"/span>)
.withHost(equalTo("api.sandbox.braintreegateway.com"))
.willReturn(okJson("{ ... }")) )。
//測驗一些使用Braintree客戶端lib的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/333322.html
標籤:
