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