Я использую акровую систему Akka с Spray и WireMock для создания веб-сервисов. Я хочу также проверить, что внешний HTTP-запрос уже сделан.Испытание асинхронного поведения с использованием WireMock
В следующем случае использования запроса POST производится на мой Spray сервер, который должен отправить запрос на внешнее обслуживание:
stubFor(get(urlEqualTo("/external-service"))
.willReturn(aResponse()
.withStatus(200)
.withBodyFile("response-body.json")));
myService ! Post("/my-service", FormData(Seq("id" -> "1")))
Thread.sleep(1000)
verify(postRequestedFor(urlEqualTo("/services/harvesterService")))
В различных примерах, которые я видел технику Thread.sleep, так как в противном случае ActorSystem отключается, и моя служба никогда не сделает HTTP-запрос для внешней службы.
Можно ли избежать этого? Может ли WireMock ждать запроса к внешней службе? Возможно, с некоторым таймаутом ...