Как проверить 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())
конечная точка.