Как проверить IntegrationFlow с помощью FileReadingMessageSource и HttpRequestExecutingMessageHandler в весенней интеграции

У меня есть поток интеграции для опроса файлов json из некоторой папки и отправки их в конечную точку http отдыха. Ниже мой код:

@Bean
public IntegrationFlow jsonFileToRestFlow() {
    return IntegrationFlows
            .from("fileInputChannel")
            .transform(new FileToStringTransformer())
            .enrichHeaders(s -> s.header("Content-Type", "application/json; charset=utf8"))
            .handle(httpRequestExecutingMessageHandler())
            .get();
}

После получения ответа от http конечной точкой я переместлю свои файлы к успешному или неудачному каналу. Теперь я хочу проверить свой код. Каков наилучший способ проверить этот код. Моя идея поставить json Файлы в моем inputChannel а затем смоделируйте мой http ответ и проверьте, есть ли ожидаемое сообщение в successChannel или неудача. Но я не знаю с чего начать. Кто-нибудь может дать мне несколько советов? Спасибо

1 ответ

Решение

Пожалуйста, ознакомьтесь с Spring Integration Testing Framework. Так что ваши httpRequestExecutingMessageHandler можно заменить на MockIntegration.mockMessageHandler() где вы действительно можете произвести любой возможный насмешливый ответ в handleNextAndReply(),

Другой вариант, как MockMvc и его MockMvcClientHttpRequestFactory впрыскивать в RestTemplate для HttpRequestExecutingMessageHandler,

Успех или неудача могут быть достигнуты с ExpressionEvaluatingRequestHandlerAdvice применяется на .handle(httpRequestExecutingMessageHandler()) конечная точка.

Другие вопросы по тегам