IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Comment testez-vous vos entités JPA ?

Votants
47. Vous ne pouvez pas participer à ce sondage.
  • Je fais mes tests unitaires JPA moi-même

    22 46,81%
  • J'utilise un framework spécifique pour JPA

    5 10,64%
  • J'ai créé une sorte de framework maison pour JPA

    1 2,13%
  • Je ne crée pas de tests unitaires JPA

    19 40,43%
JPA Java Discussion :

Comment testez-vous vos entités en JPA ?


Sujet :

JPA Java

  1. #1
    Membre régulier Avatar de fisico
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 98
    Points : 92
    Points
    92
    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

  2. #2
    Membre régulier Avatar de fisico
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 98
    Points : 92
    Points
    92
    Par défaut
    Un article sur un blog correspondant à ce sujet:

    http://eskatos.wordpress.com/2007/10...mory-database/
    SCJP - SCWCD - SCBCD

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 25
    Points
    25
    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

  4. #4
    Membre habitué Avatar de xv-mnt
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 142
    Points : 178
    Points
    178
    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)

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    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.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 80
    Points : 59
    Points
    59
    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.

  7. #7
    Membre régulier
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 118
    Points : 84
    Points
    84
    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.
    SJCP 1.6

  8. #8
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    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

  9. #9
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    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.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Points : 468
    Points
    468
    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

  11. #11
    Membre confirmé Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Points : 597
    Points
    597
    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).

  12. #12
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par slevy Voir le message
    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
    même chose pour moi.

    http://static.springsource.org/sprin...e/testing.html

  13. #13
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    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

  14. #14
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Citation Envoyé par geforce Voir le message
    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
    Moi j'utilise Junit pout tester ,et Spring pour injecter mes EAO dans ma classe de Test.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  15. #15
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    Moi j'utilise Junit pout tester ,et Spring pour injecter mes EAO dans ma classe de Test.
    tu veux dire DAO ! a la place de EAO

  16. #16
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    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.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  17. #17
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut
    JUnit + DbUnit + Spring,
    correspondrait à quel proposition , 1 ou 2?

Discussions similaires

  1. Comment testez-vous vos couches d’accès aux données (DAL) ?
    Par nico-pyright(c) dans le forum Général Dotnet
    Réponses: 20
    Dernier message: 12/11/2009, 19h42
  2. Comment testez-vous vos algos de traitement d'image ?
    Par progfou dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 10/09/2007, 20h12
  3. Comment creez vous vos interfaces ?
    Par Regis.C dans le forum EDI et Outils pour Java
    Réponses: 28
    Dernier message: 21/10/2005, 17h47
  4. [MySQL] Comment ecrivez-vous vos traitements batch
    Par ouioui2000 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/10/2005, 16h36
  5. [tomcat][jsp] Comment gerez vous vos connexions bdd?
    Par olive.m dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 21/06/2004, 18h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo