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 :
je viens de créer la classe UserTest qui hérite de JpaTestCase :
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 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(); } }
mais le test ne fonctionne pas.
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 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(); } } } }
Pourriez-vous SVP m'indiquer où se trouve l'erreur car là je bloque.
merci d'avance pour toute aide ou suggestion.
AVATAR7575
Partager