Publicité

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%
+ Répondre à la discussion
Affichage des résultats 1 à 17 sur 17
  1. #1
    Membre du Club Avatar de fisico
    Inscrit en
    septembre 2003
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 98
    Points : 64
    Points
    64

    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 du Club Avatar de fisico
    Inscrit en
    septembre 2003
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 98
    Points : 64
    Points
    64

    Par défaut

    Un article sur un blog correspondant à ce sujet:

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

  3. #3
    Futur Membre du Club
    Profil pro Paul Merlin
    Inscrit en
    mars 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Nom : Paul Merlin
    Localisation : France

    Informations forums :
    Inscription : mars 2007
    Messages : 16
    Points : 19
    Points
    19

    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 actif 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 : 160
    Points
    160

    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 Confirmé Sénior

    Inscrit en
    mai 2003
    Messages
    3 284
    Détails du profil
    Informations forums :
    Inscription : mai 2003
    Messages : 3 284
    Points : 9 776
    Points
    9 776

    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.

  6. #6
    Futur Membre du Club
    Étudiant
    Inscrit en
    août 2004
    Messages
    77
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2004
    Messages : 77
    Points : 19
    Points
    19

    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 du Club
    Développeur informatique
    Inscrit en
    août 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2007
    Messages : 118
    Points : 47
    Points
    47

    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.

  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 : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : juillet 2006
    Messages : 766
    Points : 984
    Points
    984

    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 Confirmé Sénior
    Avatar de christopheJ
    Profil pro
    Inscrit en
    avril 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : avril 2004
    Messages : 1 612
    Points : 7 362
    Points
    7 362

    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

  10. #10
    Membre éprouvé
    Profil pro Stéphane
    Inscrit en
    juin 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Nom : Stéphane

    Informations forums :
    Inscription : juin 2007
    Messages : 376
    Points : 407
    Points
    407

    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 éclairé Avatar de heid
    Profil pro
    Inscrit en
    mai 2002
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : mai 2002
    Messages : 351
    Points : 338
    Points
    338

    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
    Invité régulier
    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 éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    janvier 2010
    Messages
    743
    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 : 743
    Points : 417
    Points
    417

    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
    Modérateur

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 864
    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 864
    Points : 3 493
    Points
    3 493

    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.

  15. #15
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    janvier 2010
    Messages
    743
    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 : 743
    Points : 417
    Points
    417

    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
    Modérateur

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 864
    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 864
    Points : 3 493
    Points
    3 493

    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.

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

    Informations forums :
    Inscription : janvier 2005
    Messages : 357
    Points : 417
    Points
    417

    Par défaut

    JUnit + DbUnit + Spring,
    correspondrait à quel proposition , 1 ou 2?

Liens sociaux

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
  •