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

Langage Java Discussion :

Enum, Hashcode et tests JUnit


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 95
    Par défaut Enum, Hashcode et tests JUnit
    Bonjour à tous,

    Je me permets de vous contacter parce que je suis assez perplexe quant à mes tests Junit...

    Dans ma classe Toto, voici ce que l'on peut trouver :



    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
    public class CodeOperationYYY extends BaseBean {
     
    	private static final long	serialVersionUID	= 1L;
     
    	private Long	          id;
    	private int	              version;
     
    	public String	          codeOperation;
    	public String	          libelleOperation;
    	public NatureOperation	  natureOperation;
     
    	public Long getId() {
    		return id;
    	}
     
    	public void setId( Long id ) {
    		this.id = id;
    	}
     
    	public int getVersion() {
    		return version;
    	}
     
    	public void setVersion( int version ) {
    		this.version = version;
    	}
     
    	public String getCodeOperation() {
    		return codeOperation;
    	}
     
    	public void setCodeOperation( String codeOperation ) {
    		this.codeOperation = codeOperation;
    	}
     
    	public String getLibelleOperation() {
    		return libelleOperation;
    	}
     
    	public void setLibelleOperation( String libelleOperation ) {
    		this.libelleOperation = libelleOperation;
    	}
     
    	public NatureOperation getNatureOperation() {
    		return natureOperation;
    	}
     
    	public void setNatureOperation( NatureOperation natureOperation ) {
    		this.natureOperation = natureOperation;
    	}
     
    	public CodeOperationYYY () {
    		super();
    	}
     
    	public CodeOperationYYY ( String codeOperation, String libelleOperation, NatureOperation natureOperation ) {
    		super();
    		this.codeOperation = codeOperation;
    		this.libelleOperation = libelleOperation;
    		this.natureOperation = natureOperation;
    	}
     
    	@Override
    	public int hashCode() {
    		final int prime = 31;
    		int result = 1;
    		result = prime * result + ((codeOperation == null) ? 0 : codeOperation.hashCode());
    		result = prime * result + ((libelleOperation == null) ? 0 : libelleOperation.hashCode());
    		result = prime * result + ((natureOperation == null) ? 0 : natureOperation.hashCode());
    		return result;
    	}
     
    	@Override
    	public boolean equals( Object obj ) {
    		if (this == obj) return true;
    		if (obj == null) return false;
    		if (!(obj instanceof CodeOperation)) return false;
    		final CodeOperation other = (CodeOperation) obj;
    		if (codeOperation == null) {
    			if (other.codeOperation != null) return false;
    		} else
    			if (!codeOperation.equals( other.codeOperation )) return false;
    		if (libelleOperation == null) {
    			if (other.libelleOperation != null) return false;
    		} else
    			if (!libelleOperation.equals( other.libelleOperation )) return false;
    		if (natureOperation == null) {
    			if (other.natureOperation != null) return false;
    		} else
    			if (!natureOperation.equals( other.natureOperation )) return false;
    		return true;
    	}
    	public String getCodeOperetLibelle() {
     
    		String lesdeux = getCodeOperation().concat( " " ).concat( getLibelleOperation() );
    		return lesdeux;
     
    	}
     
    }
    J'essaie de tester mon bean avec Junit avec la méthode testEquals fournie dans mon framework, en utilisant le code suivant :


    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 class CodeOperationYYYTest extends TestCase 
    	{
    		public void testEquals()
    			{ 
    				final CodeOperationYYY a = new CodeOperationYYY ("22", 	"Virement particulier"		,NatureOperation.OPE_PRESENTATION ); // objet a - objet de référence"
    				final CodeOperationYYY b = new CodeOperationYYY ("22", 	"Virement particulier"		,NatureOperation.OPE_PRESENTATION ); // b identique à a
    				final CodeOperationYYY c = new CodeOperationYYY ("16", 	"Rejet d'AOCT (débit)"	,NatureOperation.OPE_REJET); // c différent de a
    				final CodeOperationYYY d = new CodeOperationYYY ("22", 	"Virement particulier"		,NatureOperation.OPE_PRESENTATION) 
    				// d identique à a mais instance d'une sous-classe de celle de a
    					{
    						private static final long	serialVersionUID	= 1L;
    					};
     
    				new EqualsTester( a, b, c, d );
    			}
    	}
    Je précise que NatureOperation est une énumération....

    JUnit me plante avec la trace suivante :
    junit.framework.AssertionFailedError: a.equals(d)
    at junit.framework.Assert.fail(Assert.java:47)
    at com.gargoylesoftware.base.testing.EqualsTester.assertClassAndSubclass(EqualsTester.java:163)
    at com.gargoylesoftware.base.testing.EqualsTester.<init>(EqualsTester.java:132)
    at fr.gouv.finances.cp.psx.test.dev.bean.CodeOperationYYYTest.testEquals(TotoTest.java:21)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at junit.framework.TestCase.runTest(TestCase.java:164)
    at junit.framework.TestCase.runBare(TestCase.java:130)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:120)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

    Auriez-vous une idée de la raison du plantage, sachant que cette mécanique fonctionne parfaitement pour d'autres beans, ou si je modifie la valeur NatureOperation.OPE_PRESENTATION de mon objet d?
    D'avance, merci!

    GroToTo

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut
    A tout hasard, tu as le code de NatureOperation ? Sinon regarde avec le débugguer en pas à pas pour voir ou l'égalité cloche.

Discussions similaires

  1. [EJB3] Problème test JUNIT sur JBoss
    Par Thane dans le forum Java EE
    Réponses: 2
    Dernier message: 14/02/2007, 15h11
  2. problème avec test Junit
    Par Rayley dans le forum Maven
    Réponses: 6
    Dernier message: 15/11/2006, 16h15
  3. différents tests Junit/Mock objects
    Par LESOLEIL dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 09/05/2006, 17h28
  4. [JUnit] @Test, Junit et Java 1.5
    Par pierreonxbox dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 18/04/2006, 15h55
  5. [Plugin Test] JUnit et autres outils...
    Par seb-astien dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/09/2005, 12h12

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