java - 集成流和通用处理程序的 Junit 测试用例
问题描述
我想为 Integration flow 和 GenericHandler 编写一个 JUnit 测试用例和集成测试用例。
我浏览了一些文章,但没有发现任何有用的东西。
代码片段 1
IntegrationFlows.from(() -> path, e -> e.poller(Pollers.fixedDelay(60, TimeUnit.SECONDS)))
.handle(Sftp.outboundGateway(sftpSessionFactory(), LS, "payload")
.regexFileNameFilter(".*csv"))
.split()
.handle(Sftp.outboundGateway(sftpSessionFactory(), GET, "payload.remoteDirectory + payload.filename").options(STREAM).temporaryFileSuffix("_reading"))
.handle(readCsvData(), e -> e.advice(afterReadingCsv()))
.filter(this, "checkSuccess")
.enrichHeaders(h -> h
.headerExpression(FileHeaders.RENAME_TO, "headers[file_remoteDirectory] + 'archive/' + headers[file_remoteFile]")
.headerExpression(FileHeaders.REMOTE_FILE, "headers[file_remoteFile]")
.header(FileHeaders.REMOTE_DIRECTORY, "headers[file_remoteDirectory]"))
.handle(Sftp.outboundGateway(sftpSessionFactory(), MV, "headers[file_remoteDirectory]+headers[file_remoteFile]").renameExpression("headers['file_renameTo']"))
.get();
代码片段 2
public GenericHandler readCsvData() {
return new GenericHandler() {
@Override
public Object handle(Object o, Map map) {
}
}
}
为上述代码片段编写 JUnit 测试用例获得一些指导会很有用。
解决方案
您可以执行以下操作
解决方案代码片段 1:模拟类并调用方法,然后您可以验证交互。
解决方案代码片段 2:
File file = ResourceUtils.getFile("classpath:someFile");
InputStream inputStream = new FileInputStream(file);
Map map = anyMap();
GenericHandler genericHandler = service.readCsvData();
Object actual = genericHandler.handle(inputStream, map);
// Add some assertions here
推荐阅读
- powershell - 如何在powershell中停止循环
- reactjs - 使用自定义钩子的 useState 和 useEffect 的困难
- django - 默认迁移表名重命名
- python-3.x - Python 3 和 Sklearn:难以将 NOT-sklearn 模型用作 sklearn 模型
- python - kivy.uix.screenmanager.ScreenManagerException:ScreenManager 只接受 Screen 小部件
- c# - .NET Core 3.0:尝试使用 .Value 检索选项值时出现类型转换错误
- rust - 使用 OpenOCD 和 arm-none-eabi-gdb 将二进制文件加载到 stm32f103c8t6
- python - 如何保持循环熊猫数据框
- reactjs - 传递给 jest 的 TZ 变量未对 Jenkins docker slaves 生效
- dolphindb - 在 DolphinDB 中,如何添加一个结合时间和日期的 DATETIME 类型的新列