IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Test unitaire et gestion d'erreur pour connexion DB


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 176
    Points : 99
    Points
    99
    Par défaut Test unitaire et gestion d'erreur pour connexion DB
    Bonjour,

    Je voudrais créer deux tests unitaires, un pour tester que ma connexion à la DB fonctionne correctement (Driver et connexion), celui-là fonctionne.
    Et un pour tester quand ma connexion à un problème, (également driver et connexion).

    Problème, je ne vois pas trop comment aborder ce test KO.
    Je crois que je dois faire remonter l'erreur dans mon test?


    ma Class pour me connecter à la DB après lecture d'un fichier XML contenant les settings.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    package be.poo.persistence;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import javax.swing.JOptionPane;
     
    /**
     * Class ConnectDB pour me connecter à la DB.
     *
     * @author James
     */
    public class ConnectDB {
     
        private static String urlDB, passwordDB, userDB;
        private static Object INSTANCE;
        private final String FILE = "settingDB.xml";
        public ReadXML read = new ReadXML(FILE);
        public Boolean boolDriver, boolConnect;
     
        //Constructeur
        private ConnectDB() {
            ConnectDB.urlDB = read.settingDB().url;
            ConnectDB.passwordDB = read.settingDB().psw;
            ConnectDB.userDB = read.settingDB().user;
        }
     
        /**
         * Méthode getInstance, crée une instance unique de ConnectDAO et renvoie
         * cet instance.
         *
         * @return
         */
        public static ConnectDB getInstance() {
            if (ConnectDB.INSTANCE == null) {
                INSTANCE = new ConnectDB();
            }
            return (ConnectDB)INSTANCE;
        }
     
        /**
         * Méthode pour la connexion à la DB
         *
         * @return
         * @throws SQLException
         */
        public Connection getConnection() throws SQLException {     
            Connection con;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                boolDriver = true;
                con = DriverManager.getConnection(("jdbc:mysql://") + ConnectDB.urlDB, ConnectDB.userDB, ConnectDB.passwordDB);
                boolConnect = true;
                return con;
            } catch (ClassNotFoundException ex) {//Gestion d'erreur en cas de problème de Driver
                JOptionPane.showMessageDialog(null, "Erreur driver mysql!", "Message d'erreur", JOptionPane.ERROR_MESSAGE);
                boolDriver = false;
                return null;
            } catch (SQLException ex) {//Gestion d'erreur si problème connexion à la DB
                JOptionPane.showMessageDialog(null, "Problème de connexion à la DB!", "Message d'erreur", JOptionPane.ERROR_MESSAGE);
                System.out.println("error: " + ex);
                boolConnect = false;
                return null;
            }
     
        }
     
        /**
         * Pour test d'affichage settings DB
         *
         * @return
         */
        @Override
        public String toString() {
            return ConnectDB.urlDB + " " + ConnectDB.userDB + " " + ConnectDB.passwordDB;
        }
     
    }
    Mes tests unitaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    package be.poo.testsunitaires;
     
    import be.iepscfjemelle.poo.examen_poo.persistence.ConnectDB;
    import java.sql.SQLException;
    import junit.framework.Assert;
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Test;
     
    /**
     *
     * @author James
     */
    public class Test2_ConnectDB {
     
        //Attributs
        public Boolean resultatDriver, resultConnect;
     
        public Test2_ConnectDB() {
        }
     
        @BeforeClass
        public static void setUpClass() {
        }
     
        @AfterClass
        public static void tearDownClass() {
        }
     
        @Test
        public void test1_ConnectDB() throws SQLException {
            ConnectDB.getInstance().getConnection();
            resultatDriver = ConnectDB.getInstance().boolDriver;
            System.out.println("TEST 1 - Test Driver.");
            Assert.assertTrue(resultatDriver);
            System.out.println("TEST 1 - Vous avez le bon Driver.");
            System.out.println("");
            System.out.println("TEST 2 - Test Connection.");
            resultConnect = ConnectDB.getInstance().boolConnect;
            Assert.assertTrue(resultConnect);
            System.out.println("TEST2 - Connection OK.");
        }
     
        //TODO connection KO avec gestoin d'erreur.
     
        /*@Test
        public void test2_ConnectDB_KO() throws SQLException {
            ConnectDB.getInstance().getConnection();
            resultatDriver = ConnectDB.getInstance().boolDriver;
            System.out.println("TEST 1 - Test Driver.");
            Assert.assertFalse(resultatDriver);
            System.out.println("TEST 1 - Vous n'avez le bon Driver.");
            System.out.println("");
            System.out.println("TEST 2 - Test Connection.");
            resultConnect = ConnectDB.getInstance().boolConnect;
            Assert.assertFalse(resultConnect);
            System.out.println("TEST2 - Connection KO.");
        }*/
     
        @Before
        public void setUp() {
        }
     
        @After
        public void tearDown() {
        }
     
    }

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    pour cela il te faudra etre capable de changer les données depuis ton Test.
    la tu lui passes par exemple un fichier xml avec des données erronées,
    ou avec un mauvais maot de passe, ou un mauvais driver.

    Eric

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 176
    Points : 99
    Points
    99
    Par défaut
    Pour tester la mauvaise lecture de mon fichier XML, c'est ce que j'ai fait, je lui envoi un fichier XML erroné à lire.
    Mais pour tester un problème de driver ou de connexion, je dois pouvoir tester et récupérer les erreurs: SQLException et ClassNotFoundException?

    Enfin je crois, c'est de la gestion d'erreur et c'est là dessus que je bloque.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/12/2015, 20h49
  2. Réponses: 2
    Dernier message: 23/12/2015, 11h47
  3. [Oracle] [PHP] Gestion des erreurs de connexion
    Par Mimo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/06/2006, 01h17
  4. Réponses: 6
    Dernier message: 09/06/2006, 12h17
  5. [VB6 + Mysql]Gestion des erreurs de connexion
    Par Deejoh dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 25/01/2006, 20h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo