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

JPA Java Discussion :

[Junit] Que tester


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Par défaut [Junit] Que tester
    Bonjour à tous,

    Dans mon projet actuel je dois faire des tests JUNIT mais je n'arrive pas trop à cerner ce qui est judicieux de tester et je m'explique :

    Déjà ma structure :
    Mes facelets appellent mes beans qui appellent mes classes services qui appellent mes classes data (C'est là où j'ai mes requêtes, persist etc...).

    Que doivent lancer mes méthodes JUNIT ? Je vois 3 solutions possible (-> = appel de méthode) :
    1- Méthodes JUNIT (@test) -> classes services -> classes data.
    2- Méthodes JUNIT (@test) -> classes data.
    3- Méthodes JUNIT (@test) avec directement les requêtes dedans.

    Je crois savoir qu'il y a un outils eclipse qui permet de savoir le pourcentage de code "testé" mais je n'ai pas d'autres infos.

    Merci d'avance ;-)

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Par défaut
    J'ai tenté toutes les solutions mais mon entitymanager reste à null...

    Je viens d'essayer toute les solutions du net que je trouve mais aucune ne fonctionne chez moi (je n'ai pas forcement la même architecture).

    De plus, la plupart des tests s'effectues avec les transactions de l'entityManager mais moi je ne les utilisent plus car JTA le fais pour moi.

    Je m'arrache les cheveux :-(

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Par défaut
    Je me retrouve souvent confronté à la même erreur via différentes méthodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.persistence.PersistenceException: No Persistence provider for EntityManager named BookstorePU
    Cette erreur se génére à ce moment là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class UserJPATest {
    
    	private static EntityManager em = null;
    	
    	@BeforeClass
        public static void setUpClass() throws Exception {
            if (em == null) {
                em = (EntityManager) Persistence.createEntityManagerFactory("BookstorePU").createEntityManager();
            }
        }
    	
    	@Test
    	public void createUser() throws Exception{
    .....}
    Peut-être une idée du coup ?

    Ah oui et mon persistence :

    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
    <?xml version="1.0" encoding="UTF-8"?>
     
    <persistence version="2.0"
       xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
            http://java.sun.com/xml/ns/persistence
            http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
      <persistence-unit name="BookstorePU" transaction-type="JTA">
    		<!-- JTA will manage transactions for us -->
    		<provider>org.hibernate.ejb.HibernatePersistence</provider>
    		<jta-data-source>java:/jdbc/BookstoreDS</jta-data-source>
     
    		<class>com.icl.m3.model.User</class>
    		<class>com.icl.m3.model.Book</class>
    		<class>com.icl.m3.model.Address</class>
    		<class>com.icl.m3.model.Author</class>
    		<class>com.icl.m3.model.Order</class>
     
    		<properties>
    			<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
    			<property name="hibernate.max_fetch_depth" value="3" />
    			<property name="hibernate.hbm2ddl.auto" value="validate" />
    			<property name="hibernate.show_sql" value="true" />
    			<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
    		</properties>
    	</persistence-unit>
     
    </persistence>

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par chido Voir le message
    Que doivent lancer mes méthodes JUNIT ? Je vois 3 solutions possible (-> = appel de méthode) :
    1- Méthodes JUNIT (@test) -> classes services -> classes data.
    2- Méthodes JUNIT (@test) -> classes data.
    3- Méthodes JUNIT (@test) avec directement les requêtes dedans.
    Je dirais, tester les points 1 et 2. Tester le point 3 ça reviens soit à unit tester la base de données, soit à unit tester ton implémentation JPA. Ce n'est pas de la responsabilité de ton programme. Et si ils foirent, ça foirera en cascade jusqu'au point 2 et 1

    Tu teste le point 2 pour être sur que tu as des classes solides pour les utiliser dans la couche service.
    Tu teste le point 1 pour être sur que ta couche service fonctionne comme escompté
    Citation Envoyé par chido Voir le message
    Je crois savoir qu'il y a un outils eclipse qui permet de savoir le pourcentage de code "testé" mais je n'ai pas d'autres infos.
    Ca s'appelle du test coverage. C'est une métrique interessante, mais pas absolue. Certains types de codes ne se prêtent par exemple pas facilement au unit testing et se prêtent d'avantage à un test par une équipe de testeurs.
    Si tu veux utiliser ça, tu as maintenant le mot clé qu'il te faut pour le marketplace eclipse

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Par défaut
    Un grand merci pour ce petit cours tchize_, je sais maintenant la bonne méthode à avoir, reste plus qu'à réussir à faire des tests unitaires car pour l'instant ça ne fonctionne pas xD

Discussions similaires

  1. [Tests] Tester un webservice que tester ?
    Par yvon_huynh dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 16/03/2015, 12h26
  2. Réponses: 2
    Dernier message: 27/01/2015, 16h29
  3. Classe Junit pour tester un Restful qui utilise @FormParam
    Par tunizar dans le forum Services Web
    Réponses: 1
    Dernier message: 04/06/2013, 16h24
  4. [JUnit] JUnit que faut il mettre dans la classe de test
    Par maysam dans le forum Tests et Performance
    Réponses: 9
    Dernier message: 06/11/2008, 13h20

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