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