Java тест на request
Стоит задача: при выполнении команды в php файле идет загрузка на внешний сервис(гугл аналитику). Нужно написать java тест который будет ловить любой запрос к внешнему сервису. И если такой произошел - значит тест прошел. Как это сделать? Я пробовал использовать фреймворк MockServer, но к сожалению не нашел подходящего примера.
При попытке выполнения кода в следующем виде :
@Rule
public WireMockRule wireMockRule = new WireMockRule(8089);
//
@Test
public void testExternalServiceRequest() {
System.out.println("11111");
// Настройка заглушки на любой запрос
wireMockRule.stubFor(any(urlMatching(".*")).willReturn(aResponse().withStatus(200)));
System.out.println("22222");
Http.execCommand(upload_VK_MBK);
// Код для выполнения команды в php файле, который делает запрос к внешнему сервису
System.out.println("33333");
// Проверка, что запрос был отправлен
wireMockRule.verify(postRequestedFor(urlMatching(".*")));
}
Получаю результат
Expected at least one request matching: {
"urlPattern" : ".*",
"method" : "POST"
}
Requests received: [ ]
com.github.tomakehurst.wiremock.client.VerificationException: Expected at least one request matching: {
"urlPattern" : ".*",
"method" : "POST"
}
Requests received: [ ]
Тест не проходит, потому что не может перехватить запрос. Хотя он на деле проходит. Как то надо точно указать синтаксически , что любой запрос
Источник: Stack Overflow на русском