如何为 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 的对象手动触发 standardintegrationflow 并调用 .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 创建功能测试的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2622013.html

(0)
上一篇 2025年3月6日 23:42:34
下一篇 2025年3月6日 23:42:41

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论