Не удалось выполнить фиктивное тестирование Apache Camel http - PullRequest
0 голосов
/ 19 июня 2019

Я тестирую этот верблюжий маршрут:

  from("direct:start")
    .setHeader(Exchange.HTTP_METHOD, constant("GET"))
    .to("http://127.0.0.1:8088/")
    .to("mock:result");

... используя этот фиктивный сервер:

mockServer = MockRestServiceServer.createServer(new RestTemplate());

mockServer.expect(
    requestTo("http://127.0.0.1:8088/"))
    .andExpect(method(HttpMethod.GET))
    .andRespond(withStatus(HttpStatus.OK)
        .contentType(MediaType.APPLICATION_JSON)
        .body("")
     );

... но получаю:

I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect

Есть ли что-то очевидное, что мне не хватает?Как мне найти причину?

1 Ответ

1 голос
/ 20 июня 2019

Вы не можете использовать MockRestServiceServer.Это не запускает реальный сервер и поэтому может использоваться только для насмешливых ответов на Spring RestTemplate.Apache Camel не использует RestTemplate для отправки запросов, он использует Apache HttpClient.

Вы можете:

  • Консультировать конечную точку http с помощью фиктивной конечной точки - предпочтительный способ.Пример использования isMockEndpointsAndSkip например здесь: верблюд макет - MockEndpoint.whenAnyExchangeReceived метод процесса не выполняется

  • Или запустите любой полный Http-сервер в вашем модульном тесте - для этого выможет расширять HttpServerTestSupport, содержащий некоторые подготовленные методы - пример HttpBodyTest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...