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

Tests et Performance Java Discussion :

Types complexes dans JUnit


Sujet :

Tests et Performance Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Types complexes dans JUnit
    Bonjour,
    Je dois réaliser des tests unitaires dans le cadre d'un projet avec le framework JUnit. Le problème est que je n'arrive pas à comparer deux types complexes.
    Dans mon cas j'ai un type complexe que je modifie au moyen d'une méthode set et j'ai enregistré mon type complexe sous la forme qu'il devrait être après le passage dans le set.
    Le problème est que quand je compare les deux, JUnit ne passe pas le test. Voici le code que j'utilise :

    Pour la classe de test :

    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
    public void setUp() throws Exception {
            sessTest = new Session(30, "Session2007");
            domTest = new Domaine("I", sessTest);
            domTest1 = new Domaine("I5", sessTest);
            persTest = new Personne("T", "Y", "0102030405", 
                    "email@gmail.com", domTest, sessTest);
            persTest2 = new Personne("T", "Y", "0102030405", 
                    "email@gmail.com", domTest1, sessTest);
     
    public void setDomaine() {
            System.out.println("setDomaine");
            persTest.setDomaine(domTest1);
            Personne result = persTest;
            Personne expResult = persTest2;
            assertTrue(expResult == result);
    }
    et voici le set de la classe métier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void setDomaine(Domaine domaine) {
    		this.domaine = domaine;
    }
    Voila dans ce cas la, le test me renvoie une valeur NULL, si quelqu'un pouvait m'aider à résoudre ce petit problème
    Merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Points : 58
    Points
    58
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    assertTrue(expResult == result);
    A mon avis "expResult" doit toujours être different de "result" car ce sont deux objets disctincts. Tu compare les adresses et pas les objets en eux memes.

    Exemple:
    String x = new String("bonjour");
    String y = new String("bonjour");
    x==y est faux mais x.equals(y) est vrai.

    Ce qui te manque c est une methode equals dans ton objet qui fait le travail de la methode equals de la classe String (il faut comparer toutes les variables de ton objet).

    Un autre moyen existe plus performant c est le hashcode mais la je te laisse chercher sur google comment faut l'implementer.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour cette réponse, je vais faire des recherches sur le hashcode et sinon faire une méthode equals.
    Merci de m'avoir débloqué

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Points : 58
    Points
    58
    Par défaut
    Que ce soit pour l une ou l autre méthode que tu choisisse, il faut que tu fasse de meme dans les classes session et domaine. car sinon tu te retrouvera avec le meme genre d erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    persTest.session == persTest2.session
    Qui te retournera a nouveau faux en permanence.

Discussions similaires

  1. [BPEL] Problème pour assigner un type complexe dans un foreach
    Par <yassou> dans le forum Services Web
    Réponses: 2
    Dernier message: 30/05/2015, 21h34
  2. Réponses: 14
    Dernier message: 23/02/2012, 08h11
  3. Incompatible Types: types complexes dans Services Web
    Par roblescriso dans le forum Services Web
    Réponses: 1
    Dernier message: 14/01/2012, 03h04
  4. [AXIS2] Envoi d'un type complexe dans une requête SOAP
    Par godolf dans le forum Services Web
    Réponses: 4
    Dernier message: 20/05/2008, 13h51
  5. Type complexe en parametre dans une procedure stockée
    Par Tsimplice dans le forum Oracle
    Réponses: 2
    Dernier message: 06/10/2005, 02h42

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