我有一个集成流程,可以从某个文件夹轮询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
中或失败。但是我不知道如何开始。谁能给我一些提示?谢谢
答案 0 :(得分:0)
请查看Spring Integration Testing Framework。因此,您的httpRequestExecutingMessageHandler
可以替换为MockIntegration.mockMessageHandler()
,在这里您实际上可以在handleNextAndReply()
中产生任何可能的模拟答复。
另一个选项类似于MockMvc,其MockMvcClientHttpRequestFactory
将被注入RestTemplate
的{{1}}中。
通过将HttpRequestExecutingMessageHandler
端点上的ExpressionEvaluatingRequestHandlerAdvice
应用于成功或失败。