Wiremock 没有响应

Wiremock does not respond

我有一个针对剩余 api 微服务器的集成测试,它存根一些外部资源。它们中的大多数都可以工作,但有一个在测试期间变得不可用。

@ClassRule
public static WireMockRule wireMockRule = new WireMockRule(
        wireMockConfig()
            .port(8080)
            .usingFilesUnderDirectory("src/integration-test/resources"));
       public static void stubExtService(WireMockRule wireMockRule) {
                wireMockRule.stubFor(post(urlPathEqualTo("/my/url"))
                    .willReturn(aResponse().withHeader("Content-Type", "application/json")
                        .withStatus(200)
                        .withBodyFile("json/response.json")));
        }

虽然我还没有在代码中找到它,但我的入口点服务正在响应,然后异步处理请求。同时,测试正在接收响应并与 WireMock 一起关闭,微服务无法再访问模拟资源。

听起来问题在于测试正在完成并且 WireMock 在异步操作完成之前关闭。在这种情况下,您可以使用 Awaitility 等待(轮询)预期的请求。

这是 WireMock 测试中的一个示例: https://github.com/tomakehurst/wiremock/blob/master/src/test/java/com/github/tomakehurst/wiremock/PostServeActionExtensionTest.java#L85