如何为 IntegrationFlows 创建功能测试
php小编新一将为您介绍如何为 IntegrationFlows 创建功能测试。IntegrationFlows是Spring Integration框架中的一个重要组件,用于定义和管理消息流转的逻辑。功能测试是保证IntegrationFlows正确运行的关键环节之一。在本文中,我们将介绍为IntegrationFlows创建功能测试的步骤和注意事项,以帮助开发人员更好地进行集成测试工作。
问题内容
我有一个 standardintegrationflow
,它每天运行并删除超过 10 天的文件。
@Bean public StandardIntegrationFlow oldReceiptsCleaner( @Qualifier("receiptSftpRemoteFileTemplate") RecursiveSftpRemoteFileTemplate receiptSftpRemoteFileTemplate, RemoteSftpFileRemover remoteSftpFileRemover) { return IntegrationFlows.from( Sftp.inboundStreamingAdapter(receiptSftpRemoteFileTemplate) .remoteDirectory(properties.getSftpPath()), e -> e.poller( Pollers.cron(properties.getCronExpression()) .maxMessagesPerPoll(-1)).id("oldReceiptsCleanerPoller")) .handle(remoteSftpFileRemover::removeFile) .get(); }
我想创建一个功能测试来验证它是否有效。我已经手动测试了代码,将 cron 表达式设置为每 2 分钟运行一次并删除早于 5 分钟的文件,但当然我需要一些自动化测试。
我曾想过创建 2 个文件,一个超过 10 天,另一个则不然。获取这两个文件并验证它们是否存在。然后使用 sourcepollingchanneladapter
的对象手动触发 sourcepollingchanneladapter
的对象手动触发 standardintegrationflow
并调用 .start()
并调用 .start()
函数,然后尝试再次获取并验证是否已删除。
第一个问题是这是否是测试 integrationflow 的正确方法。另外,我找不到一种简单的方法来在测试中创建文件并更改其修改时间。
我正在使用 spring-integration 5.5.15 和 spock 框架进行测试。还使用 minio 容器在服务器上存储文件以进行功能测试
解决方法
您可以将 PollerSpec
作为 bean 并从 oldReceiptsCleaner
流定义中引用它。然后您在测试配置中覆盖该 bean。然后你就有了 LastModifiedFileListFilter
,它可以基于 age
的某些属性并在测试中指定所需的值。
我不熟悉Minio,但可能有API如何使用所需的lastModified
创建文件。
那么是的。您可以将 @SpringIntegrationTest
与 noAutoStartup
一起使用作为 Sftp.inboundStreamingAdapter
的 bean 名称。创建文件后,您可以在测试方法中手动启动SourcePollingChannelAdapter
。
以上是如何为 IntegrationFlows 创建功能测试的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)
