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() {
    }
 
}