DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Java Zone»Se connecter à une instance de base de données s’exécutant dans un conteneur de test Java à l’aide d’IntelliJ IDEA
    Java Zone

    Se connecter à une instance de base de données s’exécutant dans un conteneur de test Java à l’aide d’IntelliJ IDEA

    octobre 27, 2021
    Se connecter à une instance de base de données s'exécutant dans un conteneur de test Java à l'aide d'IntelliJ IDEA
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    JUnité est l’un des frameworks de tests unitaires les plus populaires utilisés avec Java pour créer des tests reproductibles. Avec JUnit, chaque test est écrit comme une méthode distincte à l’intérieur d’une classe Java. IntelliJ IDEA fournit une option pour exécuter ces cas de test à partir de l’IDE.

    Si vous avez un module qui communique avec une base de données MySQL, vous pouvez tester le module unitairement en lui donnant accès à un serveur MySQL s’exécutant dans un Testcontainer. Vous pouvez également configurer cette instance de base de données MySQL avec le nom d’utilisateur, le mot de passe et le nom de base de données souhaités (sur le serveur MySQL) à l’aide de l’API fournie par le framework Testcontainers.

    Si vous utilisez Maven pour gérer les dépendances dans votre projet, comme dans Appsmith (le projet open source low code sur lequel je travaille), vous pouvez ajouter l’extrait suivant dans votre fichier POM pour inclure tous les packages requis :

    <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers</artifactId>
        <version>1.15.1</version>
        <scope>test</scope>
    </dependency>

    Pour créer une nouvelle instance MySQL Testcontainer avec JUnit 4, vous pouvez suivre ces étapes telles qu’utilisées dans le fichier de test unitaire d’Appsmith pour tester son plugin MySQL :

    public static MySQLContainer mySQLContainer = new MySQLContainer("mysql:5.7")
                .withUsername("username")
                .withPassword("password")
                .withDatabaseName("test_db");

    Veuillez noter que le framework Testcontainers est différent pour JUnit4 et JUnit5. Veuillez utiliser le framework selon la version JUnit que vous avez utilisée. Pour plus de détails, veuillez consulter la page Testcontainers.

    Les bases de données générées à l’aide de Testcontainers lorsqu’elles sont exécutées depuis l’IDE peuvent sembler devenir inaccessibles depuis l’extérieur de l’IDE. Pour vous connecter à de telles bases de données, vous pouvez utiliser l’outil de base de données fourni avec la version IDEA Ultimate.

    Étapes pour se connecter à la base de données MySQL

    1. Ajoutez un point de débogage dans le code de sorte que le Testcontainer ait été affiché à ce stade.

    Ajout d'un point de débogage dans le code

    2. Exécutez le programme de test en mode débogage et attendez qu’il s’arrête sur le point d’arrêt.

    Exécution du programme de test en mode débogage
    Arrêt de la programmation sur le point d'arrêt

    3. Cliquez sur l’outil de base de données.

    En cliquant sur l'outil de base de données

    4. Sélectionnez votre type de base de données.

    Sélection du type de base de données

    5. Récupérez vos informations d’identification. Vous pouvez lire les informations d’identification du Testcontainer à l’aide de l’API suivante lorsque vous l’utilisez avec JUnit 4.

    address  = mySQLContainer.getContainerIpAddress();
    port     = mySQLContainer.getFirstMappedPort();
    username = mySQLContainer.getUsername();
    password = mySQLContainer.getPassword();
    database = mySQLContainer.getDatabaseName();
    

    6. Testez votre connexion et enregistrez les informations d’identification.

    Tester la connexion

    7. Exécutez la requête.

    Exécuter la requête

    Emballer

    Il convient de noter que Testcontainers fournit également des instances conteneurisées de nombreuses autres bases de données populaires, telles que Postgres, MongoDB et Neo4j. De même, l’outil de base de données d’IntelliJ IDEA fournit également un support de connectivité pour la plupart des bases de données populaires. Les étapes décrites ci-dessus pour intégrer le package Testcontainers ou pour étudier la base de données conteneurisée peuvent également être utilisées avec des bases de données autres que MySQL. En résumé, les étapes pour écrire un test unitaire à l’aide de JUnit et de n’importe quel Testcontainer peuvent être généralisées comme suit :

    1. Ajouter une dépendance pour le package JUnit
    2. Ajouter une dépendance pour le package Testcontainers
    3. Écrivez un extrait de code pour démarrer une instance conteneurisée de la base de données souhaitée

    Les étapes pour enquêter sur la base de données conteneurisée instanciée ci-dessus peuvent être généralisées comme suit :

    1. Ajouter un point de débogage après l’instanciation du conteneur mais avant la fin du test
    2. Démarrez le test et attendez que l’exécution s’arrête au point de débogage
    3. Utilisez l’outil de base de données pour vous connecter à la base de données conteneurisée et exécuter des requêtes dessus

    Si vous avez besoin d’accéder à plus d’exemples de code pour voir les étapes d’utilisation ci-dessus, consultez les fichiers de test dans le référentiel GitHub d’Appsmith. J’espère que cet article vous a été utile et n’hésitez pas à partager vos impressions dans les commentaires.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.