Problème OpenJPA et test unitaires.
Bonsoir,
J'ai un petit souci pour la compréhension de ce sujet car je suis débutante dans les tests et OpenJPA :
Voici le sujet :
Expérimenter les méthodes de gestion d'une entité fournies par l'EntityManager : find, persist, merge, detach, refresh, remove.
Vous devez créer et déclarer dans le fichier persistence.xml votre propre entité JPA. Le template de projet fournit un environnement de test JPA basé sur OpenJPA et JUnit. Créez une classe de tests unitaires en héritant de la classe fr.epsi.JpaTestCase. Le fichier persistence.xml déclare une connexion vers une base de données mémoire HSQLDB. Ainsi pour chaque classe de test, une base de données sera instanciée en mémoire et OpenJPA créera automatiquement les tables, conformément aux annotations de votre entité.
Voici la classe JpaTestCase :
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
|
package fr.epsi;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
public abstract class JpaTestCase {
private static EntityManagerFactory entityManagerFactory;
protected EntityManager entityManager;
@BeforeClass
public static void createEntityManagerFactory() {
entityManagerFactory = Persistence.createEntityManagerFactory("myPersistenceUnit");
}
@AfterClass
public static void closeEntityManagerFactory() {
entityManagerFactory.close();
}
@Before
public void createEntityManager() {
entityManager = entityManagerFactory.createEntityManager();
}
@After
public void closeEntityManager() {
entityManager.close();
}
} |
je viens de créer la classe UserTest qui hérite de JpaTestCase :
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
|
public class UserTest extends JpaTestCase {
private final static User user = new User();
private final static String NOM_USER = "avatar";
private final static String PRENOM_USER = "avatar";
private final static String EMAIL_USER = "avatar@gmail.com";
@Before
public void createEntityManager(){
super.closeEntityManager();
System.out.println("@Before : createEntityManager()");
}
@After
public void closeEntityManager() {
super.closeEntityManager();
System.out.println("@After : closeEntityManager()");
}
@Before
public void setUpTest() {
user.setNom(NOM_USER);
user.setPrenom(PRENOM_USER);
user.setEmail(EMAIL_USER);
user.setAge(22);
user.setId(1L);
}
@Test
public void persistEntity() {
UserTest user_test = new UserTest();
user_test.setUpTest();
entityManager.getTransaction().begin();
boolean transactionOk = false;
try {
entityManager.persist(user);
} finally {
if (transactionOk) {
entityManager.getTransaction().commit();
} else {
entityManager.getTransaction().rollback();
}
}
}
} |
mais le test ne fonctionne pas.
Pourriez-vous SVP m'indiquer où se trouve l'erreur car là je bloque.
merci d'avance pour toute aide ou suggestion.
AVATAR7575