我正在尝试为流配置实施一些测试。我将JMS入站通道适配器作为流和出站文件通道适配器(附带ExpressionEvaluatingRequestHandlerAdvice)的入口点作为最后一个端点。流量集成测试(Java DSL配置)
这里是一个示例代码:
@Bean
public IntegrationFlow fileProcessingFlow() {
DefaultMessageListenerContainer dmlc = new DefaultMessageListenerContainer();
dmlc.setConnectionFactory(connectionFactory);
dmlc.setDestination(jmsQueue);
return IntegrationFlows.from(Jms.messageDrivenChannelAdapter(dmlc))
.<String, File>transform(p -> new File(p))
.handle(headerEnricherService)
.<Boolean>route("T(SomeEnum).INVALID.equals(headers['headerName'])", mapping -> mapping
.subFlowMapping(Boolean.TRUE, sf -> sf.handle(serviceRef, "handleInvalidFile"))
.subFlowMapping(Boolean.FALSE, sf -> sf
.handle(serviceRef, "handleValidFile")
.handle(anotherServiceRef)))
.filter(additionalFilterRef)
.handle(Files.outboundAdapter("'output/dir/path'")
.autoCreateDirectory(true)
.deleteSourceFiles(true),
c -> c.advice(fileCopyAdvice()))
.get();
}
我用这篇文章来实现上面的代码 - https://spring.io/blog/2014/11/25/spring-integration-java-dsl-line-by-line-tutorial。但是,我无法找到有关测试代码的信息。
我有关于上面的代码中几个问题:
- 我在哪里可以找到一个类似定义流程的测试实例(S)?或者至少,有关该主题的一些教程或文章?
- 什么是模拟JMS连接的最佳方式?
- 如何在流配置中未明确定义通道时引用通道?优选地,我想在我的测试配置中自动装入通道,然后向其发送示例消息。类似于
jmsInputChannel.send(testMessage);
- 有什么方法可以在测试中使用MessageHistory?
谢谢。
嗨Artem。非常感谢您的详细回复。 – Alex