|
|||||||
| JPA Forum d'entraide sur l'API de persistance JPA (Java Persistence API) |
|
|
Publicité ' | |||||||||||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#1 |
|
Membre du Club
![]() Inscription : septembre 2003 Messages : 98 ![]() |
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.
Alexis
__________________
SCJP - SCWCD - SCBCD |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : septembre 2003 Messages : 98 ![]() |
Un article sur un blog correspondant à ce sujet:
http://eskatos.wordpress.com/2007/10...mory-database/
__________________
SCJP - SCWCD - SCBCD |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Paul MerlinInscription : mars 2007 Messages : 13 ![]() |
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 |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : juillet 2005 Messages : 142 ![]() |
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) |
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2003 Messages : 3 293 ![]() |
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. |
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Étudiant Inscription : août 2004 Messages : 74 ![]() |
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.
|
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
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. |
|
|
00
|
|
|
#8 | |
|
Membre Expert
![]() ![]() Inscription : juillet 2006 Messages : 765 ![]() |
Citation:
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
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT. API Simple et Productive. Avec style. |
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : avril 2004 Messages : 1 618 ![]() |
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. |
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() Inscription : juin 2007 Messages : 367 ![]() |
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 |
|
|
10
|
|
|
#11 |
|
Membre éclairé
![]() Inscription : mai 2002 Messages : 341 ![]() |
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... |
|
|
00
|
|
|
#12 | |
|
Invité régulier
![]() Inscription : juillet 2002 Messages : 6 ![]() |
Citation:
http://static.springsource.org/sprin...e/testing.html |
|
|
|
00
|
|
|
#13 |
|
Membre éclairé
![]() ![]() |
Bonjour,
je voudrais faire des Tests Unitaire pour tester DAO (tout ce qui est CRUD) Mais sans utiliser Spring, dit mois si ces possible ? est Eventuellement comment (façon de faire) ? PS: j'utilise JEE6, EJB3.1, Junit4 |
|
00
|
|
|
#14 |
![]() ![]() Ingénieur développement logiciels Inscription : juin 2007 Messages : 2 760 ![]() |
Moi j'utilise Junit pout tester ,et Spring pour injecter mes EAO dans ma classe de Test.
|
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() ![]() |
|
|
00
|
|
|
#16 |
![]() ![]() Ingénieur développement logiciels Inscription : juin 2007 Messages : 2 760 ![]() |
Non je parle bien d'EAO, les DAO dans ma boite c'est pas pour attaquer les entités, mais pour faire du sql natif. C'est juste une question de définition.
|
|
|
00
|
|
|
#17 |
|
Membre éprouvé
![]() ![]() Khaled Noordin Abou ImranInscription : janvier 2005 Messages : 341 ![]() |
JUnit + DbUnit + Spring,
correspondrait à quel proposition , 1 ou 2? |
|
00
|
Copyright © 2000-2013 - www.developpez.com