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

Java Discussion :

Tests avec JUnit: assertEquals


Sujet :

Java

  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2011
    Messages : 593
    Points : 353
    Points
    353
    Par défaut Tests avec JUnit: assertEquals
    Salut à tous!

    j'essaye de faire un test avec JUnit, en utilisant "assertEquals", mais je ne comprends pas pourquoi ça marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Utilisateur utilisateur = new Utilisateur("aze", "rty", "Claude", "McKelly", 
                    "gdgdgd@gmail.com", 0);         
            UtilisateurDAO instance = new UtilisateurDAO();
            instance.create(utilisateur);
     
            Utilisateur expected = new Utilisateur("aze", "rty", "Claude", "McKelly", 
                    "gdgdgd@gmail.com", 0); , 
     
            assertEquals(expected, instance.read(1));
    J'ai redéfini la méthode equals dans la classe Utilisateur:
    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
     
     
    public boolean equals(Utilisateur utilisateur) {
            if (utilisateur == null) {
                return false;
            }
            if (!login.equals(utilisateur.getLogin())) {
                return false;
            }
            if (!pwd.equals(utilisateur.getPwd())) {
                return false;
            }
            if (!nom.equals(utilisateur.getNom())) {
                return false;
            }
            if (!prenom.equals(utilisateur.getPrenom())) {
                return false;
            }
            if (!email.equals(utilisateur.getEmail())) {
                return false;
            }
            if (groupe != utilisateur.getGroupe()) {
                return false;
            }
            return true;
        }
    Et pourtant le test me dit que les 2 objets ne sont pas égaux. Pourquoi?

  2. #2
    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
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Utilisateur utilisateur = new Utilisateur("aze", "rty", "Claude", "McKelly", 
                    "gdgdgd@gmail.com", 0);         
            UtilisateurDAO instance = new UtilisateurDAO();
            instance.create(utilisateur);
     
            Utilisateur expected = new Utilisateur("aze", "rty", "Claude", "McKelly", 
                    "gdgdgd@gmail.com", 0); , 
     System.out.Println("utilisateur :"+utilisateur.toString());
    System.out.Println("expected :"+expected.toString());
            assertEquals(expected, instance.read(1));

    mais bien sur tu aura un affichage utile pour comprendre si ton toString est intéressant.
    En voyant ce que tu apporte comme code et de trace d'erreur, il est pas évident de voir ou et le problème.
    Avant même de faire une comparaison sur un objet qui a été persisté par ton DAO tu peux déjà tester ce que vaut ton equals en contexte SE, en simulant par valeur une persistance et comment réagi le equals... enfin bref pour moi ce que tu apporte me permet pas d'identifier l'erreur.
    Je rajoute aussi que ton equals est mauvais, il n'y a pas de test sur le type.
    A LIRE


    ps: ce sujet ne relève pas de cette section mais plutôt de celle-ci

  3. #3
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2011
    Messages : 593
    Points : 353
    Points
    353
    Par défaut
    Et bien en fait, il n'y a pas de trace d'erreur, puisqu’il n'y a pas d'erreur. C'est juste le test qui a échoué. Voilà ce que j'ai sur la console comme résultat des System.out.println:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    utilisateur :Login=aze
    Mot de passe=rty
    Nom=Claude
    Prenom=McKelly
    E-mail=gdgdgd@gmail.com
    expected :Login=aze
    Mot de passe=rty
    Nom=Claude
    Prenom=McKelly
    E-mail=gdgdgd@gmail.com
    On voit bien que les 2 sont égaux...
    Je vais jeter un coup d’œil sur ton lien, merci!

  4. #4
    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
    montre le code complet de ton entité et de ton dao

  5. #5
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2011
    Messages : 593
    Points : 353
    Points
    353
    Par défaut
    Après avoir lu ton lien, j'ai trouvé mon erreur: je devais mettre equals(Object obj) et non equals(Utilisateur utilisateur).
    Merci beaucoup Khaled Noordin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2010, 12h14
  2. [JUnit] Model-based testing avec JUnit
    Par geforce dans le forum Tests et Performance
    Réponses: 0
    Dernier message: 11/01/2010, 00h10
  3. [JUnit] Test Unitaire avec JUnit 3
    Par yashiro dans le forum Tests et Performance
    Réponses: 3
    Dernier message: 15/01/2009, 15h43
  4. [MVN2][JUnit] test avec les ressources du main
    Par Vince78 dans le forum Maven
    Réponses: 7
    Dernier message: 26/09/2007, 19h33
  5. Test avec Junit, Mock
    Par LESOLEIL dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 27/03/2006, 18h03

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