Transaction et Rollback
Pour tester un composant qui utilise une base de bonnées (DAO par exemple) fait bien se qu'on lui demande (lecture, insertion, modification, delete), il faut à chaque fois insérer des valeurs, les modifier, les effacer, vider la ou les tables). Cela devient très vite fastidieux.
Un moyen de simplifier les choses est de jouer le test dans une transaction.
Exemple :
@Test public void testDB() throws Exception { Connection connection = getConnection(); connection.setAutoCommit(false); //begin transaction MyDao myDao = new MyDaoImpl(connection); try{ myDao.insert("1","alex"); myDao.insert("2","azerty"); assertEquals("alex", myDao.read("1")); assertEquals("azerty", myDao.read("2")); myDao.update("1", "ALEX"); myDao.update("2", "QWERTY"); assertEquals("ALEX", myDao.read("1")); assertEquals("QWERTY", myDao.read("2")); } finally { connection.rollback(); //rollback transaction connection.close(); } }
Aucun commentaire:
Enregistrer un commentaire