我们如何在 spring 启动时模拟测试 IntegrationFlow。我在使用 Spring 集成文件的 Spring 启动应用程序中使用 Spring 集成
How can we mock test IntegrationFlow in spring boot. I am using Spring Integration inside a Spring boot app using Spring Integration File
我有一项任务需要在 Spring 启动应用程序中实施 IntegrationFlow,为此我创建了一个项目。下面是 3 类.
IntegrationConfig.java
@Configuration
public class IntegrationConfig {
@Autowired
private Transformer transformer;
@Bean
public IntegrationFlow integrationFlow() {
return IntegrationFlows.from(fileReader(),spec -> spec.poller(Pollers.fixedDelay(500)))
.transform(transformer,"transform")
.handle(fileWriter())
.get();
}
@Bean
public FileWritingMessageHandler fileWriter() {
FileWritingMessageHandler handler = new FileWritingMessageHandler(new File("destination"));
handler.setExpectReply(false);
return handler;
}
@Bean
public FileReadingMessageSource fileReader() {
FileReadingMessageSource source = new FileReadingMessageSource();
source.setDirectory(new File("source"));
return source;
}
}
Transformer.java
@Component
public class Transformer {
public String transform(String filePath) throws IOException {
String content = new String (Files.readAllBytes(Paths.get(filePath)));
return "Transformed: " + content;
}
}
SpringIntegrationExample.java
@SpringBootApplication
public class SpringIntegrationExample {
public static void main(String[] args){
SpringApplication.run(SpringIntegrationExample.class,args);
}
}
现在有模拟测试这个的任务。
我是测试新手,不确定如何使用 JUnit 或 Mockito 或两者进行测试。
我尝试使用带有 When().thenReturn() 的 JUnit,但无法在其中测试 IntegrationFlow。
谁能帮我解决这个问题?
提前致谢。
到目前为止的配置注意事项:
FileReadingMessageSource
生成 File
作为消息的有效负载。
FileWritingMessageHandler
可以处理 File
有效载荷。
因此,您不需要介于两者之间的 transform()
。
虽然你只是展示了不是整个流程...
有 Java DSL-specific 流利工厂 API: org.springframework.integration.file.dsl.Files
.
不清楚您想模拟什么,但这里有一份关于使用 Spring 集成进行测试的专用文档:https://docs.spring.io/spring-integration/docs/current/reference/html/testing.html#testing
我有一项任务需要在 Spring 启动应用程序中实施 IntegrationFlow,为此我创建了一个项目。下面是 3 类.
IntegrationConfig.java
@Configuration
public class IntegrationConfig {
@Autowired
private Transformer transformer;
@Bean
public IntegrationFlow integrationFlow() {
return IntegrationFlows.from(fileReader(),spec -> spec.poller(Pollers.fixedDelay(500)))
.transform(transformer,"transform")
.handle(fileWriter())
.get();
}
@Bean
public FileWritingMessageHandler fileWriter() {
FileWritingMessageHandler handler = new FileWritingMessageHandler(new File("destination"));
handler.setExpectReply(false);
return handler;
}
@Bean
public FileReadingMessageSource fileReader() {
FileReadingMessageSource source = new FileReadingMessageSource();
source.setDirectory(new File("source"));
return source;
}
}
Transformer.java
@Component
public class Transformer {
public String transform(String filePath) throws IOException {
String content = new String (Files.readAllBytes(Paths.get(filePath)));
return "Transformed: " + content;
}
}
SpringIntegrationExample.java
@SpringBootApplication
public class SpringIntegrationExample {
public static void main(String[] args){
SpringApplication.run(SpringIntegrationExample.class,args);
}
}
现在有模拟测试这个的任务。
我是测试新手,不确定如何使用 JUnit 或 Mockito 或两者进行测试。 我尝试使用带有 When().thenReturn() 的 JUnit,但无法在其中测试 IntegrationFlow。
谁能帮我解决这个问题? 提前致谢。
到目前为止的配置注意事项:
FileReadingMessageSource
生成 File
作为消息的有效负载。
FileWritingMessageHandler
可以处理 File
有效载荷。
因此,您不需要介于两者之间的 transform()
。
虽然你只是展示了不是整个流程...
有 Java DSL-specific 流利工厂 API: org.springframework.integration.file.dsl.Files
.
不清楚您想模拟什么,但这里有一份关于使用 Spring 集成进行测试的专用文档:https://docs.spring.io/spring-integration/docs/current/reference/html/testing.html#testing