搜索
首页Java如何为 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创建文件。

那么是的。您可以将 @SpringIntegrationTestnoAutoStartup 一起使用作为 Sftp.inboundStreamingAdapter 的 bean 名称。创建文件后,您可以在测试方法中手动启动SourcePollingChannelAdapter

以上是如何为 IntegrationFlows 创建功能测试的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:stackoverflow。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用