1 回答

TA贡献1982条经验 获得超2个赞
您的 httpClient 有一个“目标”网址,可以说是 localhost:1234。你想要测试的是你的重试代码,所以你不应该触摸 httpClient 本身(因为它不是你的组件,你不应该也需要测试它。)
因此,手头的问题是当您的 localhost:1234 响应有问题时,您希望看到将运行的重试逻辑(不是您的实现..如果它没有以正确的 conf 运行是他们的问题)有效..唯一的事情你所要做的就是模拟“localhost:1234”!
这个工具http://wiremock.org/是执行此操作的完美选择。您可以为您的目标 url 创建存根,并根据您喜欢的几乎任何内容给出一系列响应。
您的代码在调用之前应该看起来像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")));
添加回答
举报