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 :

problem avec JUnit


Sujet :

Java

  1. #1
    Membre régulier Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Points : 74
    Points
    74
    Par défaut problem avec JUnit
    bonsoir,

    j'ai 2 objet personne1 et perssone2 sont identique et quand je utilise la methde [code]assertSame(personne1,personne2);
    j'ai comme resulta la bonde rouge.c koi le pb a votre avis??

    voic mon code:
    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
    29
    30
    31
    public class TestExemple extends TestCase {
     
    	public void testPersonne() {
     
    		Personne personne1 = new Personne();
    		Personne personne2 = new Personne();
    		Personne personne3 = new Personne();
     
     
    		personne1.setNom("zindine");
    		personne1.setPrenom("zindine");
    		personne1.setDateNaissance("11/08/1979");
     
     
    		personne2.setNom("zindine");
    		personne2.setPrenom("zindine");
    		personne2.setDateNaissance("11/08/1979");
     
     
    		personne3.setNom("Gil");
    		personne3.setPrenom("piere");
    		personne3.setDateNaissance("16/03/1984");
    		Personne personne4 = new Personne();
     
     
     
    		assertSame(personne1, personne2)
     
    	}
     
    }

  2. #2
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Bonjour.

    Il faut utiliser assertEquals plutôt que assertSame.

    De plus, il faut évidemment avoir redéfini la méthode equals dans ta classe Personne.

    PS: la prochaine fois, utilise la balise code pour afficher ton code c'est plus lisible

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  3. #3
    Membre régulier Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Points : 74
    Points
    74
    Par défaut
    merci;

    mais comment je peut rredéfinir la méthode equals dans ma class.

  4. #4
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Va voir la FAQ.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  5. #5
    Membre régulier Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Points : 74
    Points
    74
    Par défaut
    j'ai redifinie la methode equals dans ma class mais sans resultat.


    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     
    /*
     * Créé le 27 oct. 2008
     *
     * TODO Pour changer le modèle de ce fichier généré, allez à :
     * Fenêtre - Préférences - Java - Style de code - Modèles de code
     */
    package exemple2;
     
    /**
     * @author 493898
     * 
     * TODO Pour changer le modèle de ce commentaire de type généré, allez à :
     * Fenêtre - Préférences - Java - Style de code - Modèles de code
     */
    public class Personne {
     
    	private int id_Per;
     
    	private String nom;
     
    	private String prenom;
     
    	private String dateNaissance;
     
    	private int attribut1;
     
    	private String attribut2;
     
    	private boolean visible; // Attribut non-représentatif et donc ignoré
     
    	/**
             * @return Renvoie personne.
             */
     
    	public Personne() {
     
    	}
     
    	/**
             * @return Renvoie dateNaissance.
             */
    	public String getDateNaissance() {
    		return dateNaissance;
    	}
     
    	/**
             * @param dateNaissance
             *            dateNaissance à définir.
             */
    	public void setDateNaissance(String dateNaissance) {
    		this.dateNaissance = dateNaissance;
    	}
     
    	/**
             * @return Renvoie id_Per.
             */
    	public int getId_Per() {
    		return id_Per;
    	}
     
    	/**
             * @param id_Per
             *            id_Per à définir.
             */
    	public void setId_Per(int id_Per) {
    		this.id_Per = id_Per;
    	}
     
    	/**
             * @return Renvoie nom.
             */
    	public String getNom() {
    		return nom;
    	}
     
    	/**
             * @param nom
             *            nom à définir.
             */
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	/**
             * @return Renvoie prenom.
             */
    	public String getPrenom() {
    		return prenom;
    	}
     
    	/**
             * @param prenom
             *            prenom à définir.
             */
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
     
    	public boolean equals(Object obj) {
    		// Vérification de l'égalité des références
    		if (obj == this) {
    			return true;
    		}
     
    		// Vérification du type du paramètre
    		if (obj instanceof Personne) {
    			// Vérification des valeurs des attributs
    			Personne other = (Personne) obj;
     
    			// Pour les attributs de type primitif
    			// on compare directement les valeurs :
    			if (this.attribut1 != other.attribut1) {
    				return false; // les attributs sont différents 
    			}
     
    			// Pour les attributs de type objets 
    			// on compare dans un premier temps les références 
    			if (this.attribut2 != other.attribut2) {
    				// Si les références ne sont pas identiques
    				// on doit en plus utiliser equals()
    				if (this.attribut2 == null
    						|| !this.attribut2.equals(other.attribut2)) {
    					return false; // les attributs sont différents 
    				}
    			}
     
    			// Si on arrive ici c'est que tous les attributs sont égaux :
    			return true;
    		}
     
    		return false;
    	}
    }

  6. #6
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Pour les balise CODE, il faut utiliser le bouton # dans l'écran de rédaction du message.

    Sinon, d'après ce que je vois, tu n'as pas adapté la méthode equals à ta classe, tu t'es contenté de reprendre les attributs cités en exemple et de les ajouter dans ta classe. C'est les attributs de ta classe Personne qu'il faut tester, pas les attributs d'exemple. La FAQ était pas claire?

    Ainsi ta méthode equals pourrait ressembler à ça :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    package exemple2;
     
    public class Personne {
     
    	private int id_Per;
     
    	private String nom;
     
    	private String prenom;
     
    	private String dateNaissance;
     
    	private boolean visible; // Attribut non-représentatif et donc ignoré
     
    	/**
             * @return Renvoie personne.
             */
     
    	public Personne() {
     
    	}
     
    	/**
             * @return Renvoie dateNaissance.
             */
    	public String getDateNaissance() {
    		return dateNaissance;
    	}
     
    	/**
             * @param dateNaissance
             *            dateNaissance à définir.
             */
    	public void setDateNaissance(String dateNaissance) {
    		this.dateNaissance = dateNaissance;
    	}
     
    	/**
             * @return Renvoie id_Per.
             */
    	public int getId_Per() {
    		return id_Per;
    	}
     
    	/**
             * @param id_Per
             *            id_Per à définir.
             */
    	public void setId_Per(int id_Per) {
    		this.id_Per = id_Per;
    	}
     
    	/**
             * @return Renvoie nom.
             */
    	public String getNom() {
    		return nom;
    	}
     
    	/**
             * @param nom
             *            nom à définir.
             */
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	/**
             * @return Renvoie prenom.
             */
    	public String getPrenom() {
    		return prenom;
    	}
     
    	/**
             * @param prenom
             *            prenom à définir.
             */
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
     
    	public boolean equals(Object obj) {
    		// Vérification de l'égalité des références
    		if (obj == this) {
    			return true;
    		}
     
    		// Vérification du type du paramètre
    		if (obj instanceof Personne) {
    			// Vérification des valeurs des attributs
    			Personne other = (Personne) obj;
     
    		    return this.getId_Per()==other.getId_Per()//vérification de l'égalité de l'id
    		    	&& this.getNom().equals(other.getNom())//vérification de l'égalité du nom
    		    	&& this.getPrenom().equals(other.getPrenom())//vérification de l'égalité du prénom
    		    	&& this.getDateNaissance().equals(other.getDateNaissance()); //véification de l'égalité de la date de naissance
    		}
     
    		return false;
    	}
    }
    Comme tu le vois dans la méthode equals, il faut comparer chaque attribut.
    On utilise == pour l'id car c'est une variable de type int et par conséquent un type primitif et pas un objet. Pour les autres attributs, il faut utiliser equals car ce sont des objets.

    A noter que tu devrais utiliser un objet java.util.Date pour la date de naissance au lieu d'une String, ça améliorerais ta conception.

    Avec ça, le assertEquals devrait fonctionner.

    Si tu as d'autres questions, n'hésites pas.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  7. #7
    Membre régulier Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Points : 74
    Points
    74
    Par défaut
    vriment merci bcp

Discussions similaires

  1. probleme avec spring-test et junit
    Par chady dans le forum Spring
    Réponses: 4
    Dernier message: 16/07/2014, 08h49
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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