Wiremock 没有响应
Wiremock does not respond
我有一个针对剩余 api 微服务器的集成测试,它存根一些外部资源。它们中的大多数都可以工作,但有一个在测试期间变得不可用。
- 其他测试以同样的方式工作
- 当请求直接从测试发送时,或者如果在测试进行时从邮递员调用,给定的存根工作 Thread.sleep()
- 如果从测试调用的微服务之一发送与上述相同的请求,或者如果微服务暂停(在调试断点处暂停),则从 postman 发送相同的请求时,存根不起作用。其他存根在这些条件下工作。
@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
我有一个针对剩余 api 微服务器的集成测试,它存根一些外部资源。它们中的大多数都可以工作,但有一个在测试期间变得不可用。
- 其他测试以同样的方式工作
- 当请求直接从测试发送时,或者如果在测试进行时从邮递员调用,给定的存根工作 Thread.sleep()
- 如果从测试调用的微服务之一发送与上述相同的请求,或者如果微服务暂停(在调试断点处暂停),则从 postman 发送相同的请求时,存根不起作用。其他存根在这些条件下工作。
@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