Table des matières
Contenu de la question
Workaround
Maison Java Comment créer des tests fonctionnels pour IntegrationFlows

Comment créer des tests fonctionnels pour IntegrationFlows

Feb 08, 2024 pm 09:11 PM

L'éditeur PHP Xinyi vous présentera comment créer des tests fonctionnels pour IntegrationFlows. IntegrationFlows est un composant important du framework Spring Integration, utilisé pour définir et gérer la logique du flux de messages. Les tests fonctionnels sont l'un des maillons clés pour garantir le bon fonctionnement d'IntegrationFlows. Dans cet article, nous présenterons les étapes et les considérations nécessaires à la création de tests fonctionnels pour IntegrationFlows afin d'aider les développeurs à mieux effectuer le travail de test d'intégration.

Contenu de la question

J'ai un standardintegrationflow qui s'exécute tous les jours et supprime les fichiers de plus de 10 jours.

@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();
  }
Copier après la connexion

Je souhaite créer un test fonctionnel pour vérifier que cela fonctionne. J'ai testé le code manuellement, en définissant l'expression cron pour qu'elle s'exécute toutes les 2 minutes et supprime les fichiers de plus de 5 minutes, mais bien sûr, j'ai besoin de tests automatisés.

J'ai pensé à créer 2 fichiers, l'un datant de plus de 10 jours et l'autre non. Obtenez les deux fichiers et vérifiez qu'ils existent. Utilisez ensuite l'objet de sourcepollingchanneladapter pour déclencher manuellement sourcepollingchanneladapter 的对象手动触发 standardintegrationflow 并调用 .start() et appeler la fonction .start(), puis essayez de l'obtenir à nouveau et vérifiez qu'il a été supprimé.

La première question est de savoir si c'est la bonne façon de tester le flux d'intégration. De plus, je ne trouve pas de moyen simple de créer un fichier et de modifier son heure de modification lors d'un test.

J'utilise spring-integration 5.5.15 et le framework spock pour les tests. Utilisez également un conteneur minio pour stocker des fichiers sur le serveur pour les tests fonctionnels

Workaround

Vous pouvez PollerSpec 作为 bean 并从 oldReceiptsCleaner 流定义中引用它。然后您在测试配置中覆盖该 bean。然后你就有了 LastModifiedFileListFilter ,它可以基于 age certaines propriétés et spécifier les valeurs requises dans le test.

Je ne connais pas Minio, mais il existe peut-être une API permettant de créer le fichier en utilisant le lastModified requis.

Alors oui. Vous pouvez ajouter @SpringIntegrationTestnoAutoStartup 一起使用作为 Sftp.inboundStreamingAdapter 的 bean 名称。创建文件后,您可以在测试方法中手动启动SourcePollingChannelAdapter.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)