1 回答

TA貢獻1982條經(jīng)驗 獲得超2個贊
您的 httpClient 有一個“目標”網(wǎng)址,可以說是 localhost:1234。你想要測試的是你的重試代碼,所以你不應(yīng)該觸摸 httpClient 本身(因為它不是你的組件,你不應(yīng)該也需要測試它。)
因此,手頭的問題是當您的 localhost:1234 響應(yīng)有問題時,您希望看到將運行的重試邏輯(不是您的實現(xiàn)..如果它沒有以正確的 conf 運行是他們的問題)有效..唯一的事情你所要做的就是模擬“l(fā)ocalhost:1234”!
這個工具http://wiremock.org/是執(zhí)行此操作的完美選擇。您可以為您的目標 url 創(chuàng)建存根,并根據(jù)您喜歡的幾乎任何內(nèi)容給出一系列響應(yīng)。
您的代碼在調(diào)用之前應(yīng)該看起來像uploadFile
stubFor(post(urlEqualTo("/hash"))
.willReturn(aResponse()
.withStatus(200)
.withBody(externalResponse)));
打電話后uploadFile
并驗證步驟以驗證到達模擬端點的模擬請求
Assert.assert* //... whatever you want to assert in your handlers / code / resposnes
verify(postRequestedFor(urlEqualTo("/hash")));
添加回答
舉報