Précédent   Forum des professionnels en informatique > Java > Général Java > Persistance > JPA

JPA Forum d'entraide sur l'API de persistance JPA (Java Persistence API)

Affichage des résultats du sondage: Comment testez-vous vos entités JPA ?
Je fais mes tests unitaires JPA moi-même 19 51,35%
J'utilise un framework spécifique pour JPA 2 5,41%
J'ai créé une sorte de framework maison pour JPA 1 2,70%
Je ne crée pas de tests unitaires JPA 15 40,54%
Votants: 37. Vous ne pouvez pas participer à ce sondage.

Réponse
 
Outils de la discussion
Vieux 07/05/2008, 21h50   #1 (permalink)
Membre du Club
 
Avatar de fisico
 
Date d'inscription: septembre 2003
Messages: 100
Par défaut Comment testez-vous vos entités en JPA ?

Bonjour à tous,

Je lance une sorte de débat sans avoir réellement de prétention.

Actuellement, je travaille sur un projet longue durée où nous utilisons JPA. Le développement des entités en JPA fait partie de mon boulot quotidien et le domaine compte environ une trentaine d'entités. Comme dans toute application, il faut tester les composants qui ont été créés. Particulièrement, parce que le domaine physique est écrit par un ingénieur base de données en Oracle. Ce qui signifie que il n'y a pas de génération automatique des tables. Le but des tests unitaires est dans ce cas-ci de contrôler que les entités vont bien être persistées.
  1. Que testez-vous ?
  2. Et comment le testez-vous ?

Alexis
__________________
SCJP - SCWCD - SCBCD
fisico est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/05/2008, 22h02   #2 (permalink)
Membre du Club
 
Avatar de fisico
 
Date d'inscription: septembre 2003
Messages: 100
Par défaut

Un article sur un blog correspondant à ce sujet:

http://eskatos.wordpress.com/2007/10...mory-database/
__________________
SCJP - SCWCD - SCBCD
fisico est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 31/07/2008, 22h49   #3 (permalink)
Invité de passage
 
Date d'inscription: mars 2007
Messages: 3
Par défaut

Salut,

Je continue d'utiliser la méthode décrite dans le blog cité par fisico pour tester les entités en utilisant directement un EntityManager mais aussi pour tester mes DAOs sans aucun soucis.

Evidemment ça ne remplace pas des tests d'intégrations menés avec le SGBD utilisé en production car les implémentations de JPA utilisent différement les SGBDs sous-jacents.

Paul
eskatos est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/08/2008, 12h26   #4 (permalink)
Membre habitué
 
Avatar de xv-mnt
 
Date d'inscription: juillet 2005
Localisation: Suisse
Messages: 149
Par défaut

Pour ma part, notre équipe architecture mous a pondu quelques classes utilitaires qui permettent de changer :
- le type de transaction utilisée : soit JTA lorsque le projet est déployé sur notre serveur, soit RESOURCE_LOCAL lors des tests unitaires. Pour celà, il faut 2 fichiers persistence.xml. Le premier sera inséré dans l'EAR, et le second ne sera visible que lors des tests unitaires.
- le type de base de données : HSQLDB ou ORACLE pour les tests unitaires, suivant ce que l'on veut faire. Pour éviter la multiplication les DB ORACLE (+ lourd à maintenir), on a choisi de faire tourner les tests unitaires sous hsqldb.
Ainsi, les différents développeurs ne se marchent pas dessus lors des tests.
On a cependant une base ORACLE pour les tests unitaires exécutés lors de l'intégratio continue. Les paramètres de connexion sont définis dans un fichier de configuration.
Pour info, nos builds utilisent maven, et le build continu se fait avec CruiseControl.
__________________
Tout le monde savait que c'était impossible à faire. Puis un jour quelqu'un est arrivé qui ne le savait pas, et il le fit (Winston Churchill)
xv-mnt est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 19/08/2008, 20h56   #5 (permalink)
Rédacteur
 
Date d'inscription: mai 2003
Messages: 3 371
Par défaut

Tu peux toujours regarder comment nous faisons nos tests : http://java.developpez.tv/suntechdays2007/#vid19

Vincent
__________________
Vincent Brabant

Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.
vbrabant est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/08/2008, 14h19   #6 (permalink)
Nouveau membre du Club
 
Date d'inscription: août 2004
Localisation: France - Loiret
Messages: 64
Par défaut

Pour notre part, nous utilisons le framework TestNG pour lancer les tests unitaires et avec version embedded du noyeau JBoss avec lequel nous déployons nos EJB3, et il suffit d'un lookup sur notre facade pour tester toute la chaine métier justqu'à la couche persistance.
SuperPat est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/08/2008, 18h03   #7 (permalink)
Membre du Club
 
Date d'inscription: août 2007
Âge: 31
Messages: 109
Envoyer un message via MSN à adamo901
Par défaut

En ce qui me concèrne, je n'ai jamais fais des tests pour la partie JPA de mes projets.

Je n'en ai jamais eu besoins puisque Netbeans me crée automatiquement mes Entities et la gestion du CRUD et si facile avec le EntityManager.
adamo901 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/08/2008, 14h40   #8 (permalink)
Rédacteur
 
Avatar de nicorama
 
Date d'inscription: juillet 2006
Localisation: Toulouse
Âge: 33
Messages: 484
Par défaut

Citation:
Envoyé par adamo901 Voir le message
En ce qui me concèrne, je n'ai jamais fais des tests pour la partie JPA de mes projets.

Je n'en ai jamais eu besoins puisque Netbeans me crée automatiquement mes Entities et la gestion du CRUD et si facile avec le EntityManager.
C'est un peu la question que je me pose : utiliser un ORM, c'est bien quand tout est géré par l'ide : ca fait gagner un temps fou.

Mais si on complexifie le système, à quoi bon utiliser l'orm au lieu de tout faire à la mano avec jdbc et du xml via JDOM ? C'est pas franchement plus compliqué, bien plus souple, plus évolutif, ca diminue le nombre de classes par 3 et il n'y a pas de fichiers xml de config.

Je précise que c'est la question d'un noobs en ORM
nicorama est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/08/2008, 14h33   #9 (permalink)
Rédacteur/Modérateur
 
Avatar de christopheJ
 
Date d'inscription: avril 2004
Localisation: Tours
Âge: 34
Messages: 1 616
Par défaut

On ne multiplie pas forcement les classes par trois.
Le pattern DAO avec un DAO par entity n'est pas obligatoire.
L'EntityManager me sert de DAO générique, je n'ai donc pas de classes supplémentaire.

Pour l'aspect CRUD je fais confiance au framework, par contre il m'arrive d'utiliser DBUnit pour tester mes requetes JPQL.
Voir la vidéo donnée par vbrabant plus haut pour l'utilisation.
__________________
Rédacteur - modérateur Java
Les FAQ Java
Les cours et tutoriels Java
christopheJ est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 13h34   #10 (permalink)
Membre éclairé
 
Date d'inscription: juin 2007
Messages: 307
Par défaut

Pour ma part j'utilise JUnit et Spring pour tester mes DAO Hibernate.

Matt Raible dans cette présentation explique plusieurs de ces techniques :
https://appfuse.dev.java.net/TDDWithAppFuse.pdf
slevy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h05   #11 (permalink)
Membre éclairé
 
Avatar de heid
 
Date d'inscription: mai 2002
Localisation: Tours
Messages: 317
Par défaut

J'utilise DBUnit avec des tests unitaires à la main.

Hélas l'implémentation JPA que j'utilise (KODO) me pose de sérieux problème de fiabilité des tests (n'est ce pas christophe... ) : des méthodes échouent en tests mais fonctionnent parfaitement dans l'application, et nous avons recours à quelques bidouilles pour tester les EJB en mode local et sans conteneur (injection manuelle des datasources et entitymanagers).
__________________
http://fr.thedailywtf.com <=== Curieuses perversions en informatique.
heid est déconnecté   Envoyer un message privé Réponse avec citation
NEWS JAVAFAQs JAVATUTORIELS JAVAJAVASEARCHSOURCESLIVRESOUTILS, EDI & APIBLOGDISCUSSIONSTV

Réponse

Précédent   Forum des professionnels en informatique > Java > Général Java > Persistance > JPA



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h54.


Vos questions techniques : forum d'entraide Java - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2009 www.developpez.com - Legal informations.