TestEtat

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu TestEtat

Message  DjMan42 le Mer 24 Mar 2010, 20:03

J'ai un petit problème. Dans la classe TestEtat j'ai remarquer qu'il ne crée pas un Joueur comme moi, hors dans les 2 cas ça compile.

Dans TestEtat.java:

joueurNoir = new Joueur(NOIR);

Et dans ma classe Etat.java:

this.joueurCourant = new Joueur (Couleur.BLANC);

Que quelqu'un veuille bien m'éclaircir.


Dernière édition par DjMan42 le Ven 23 Avr 2010, 17:24, édité 1 fois

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  Florent le Mer 24 Mar 2010, 20:30

j'ai remarquer ça aussi

j'ai rajouter Couleur devant les enum de la classe test Etat sur le coup je ne savais pas trop quoi faire j'aimerais bien aussi avoir plus d'infos

Florent

Nombre de messages : 93
Prénom : Florent
Date d'inscription : 02/02/2010

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  DjMan42 le Mer 24 Mar 2010, 21:20

J'ai créé une classe main qui s'appelle main et j'ai fait appelle au constructeur

Comme ceci ça fonctionne il m'affiche un objet Pion

package dames;
public class Main {
public static void main ( String[] args ) {

Pion pion = new Pion(Couleur.BLANC);
System.out.println(pion);
}
}


Par contre comme ça il ne compile même pas

package dames;
public class Main {
public static void main ( String[] args ) {

Pion pion = new Pion(BLANC);
System.out.println(pion);
}
}

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  DjMan42 le Mer 24 Mar 2010, 22:29

J'ai réctifié le code "TestEtat.java"

Voici comment il nous a été donné :




Code:


package dames;
import static dames.Couleur.*;
import java.lang.Exception;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Before;


public class TestEtat{
   
        Etat etatDefaut = new Etat();
//    @Before public void setUp() throws Exception {
   
   
        // Plateaux vides de tailles erronees
  //      Etat etatDefaut = new Etat();
  // }   
    // le joueurCourant doit être le joueur BLANC                         
    @Test public void testEtat_11() {
        assertTrue(etatDefaut.getJoueurCourant().getCouleur() == BLANC);
    } 
}


Le voici après réctification :

J'ai modifié la dernière ligne et tout fonctionne.



Code:

import java.lang.Exception;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Before;


public class TestEtat{
   
        Etat etatDefaut = new Etat();
//    @Before public void setUp() throws Exception {
   
   
        // Plateaux vides de tailles erronees
  //      Etat etatDefaut = new Etat();
  // }   
    // le joueurCourant doit être le joueur BLANC                         
    @Test public void testEtat_11() {
        assertTrue(etatDefaut.getJoueurCourant().getCouleur() == Couleur.BLANC);
    } 
}



Donc y'a t'il des erreurs dans le fichier "TestEtat.java" et a t'on le droit de le modifié Question

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  nvs le Mer 24 Mar 2010, 22:39

DjMan42 a écrit:J'ai modifié la dernière ligne et tout fonctionne.
t'aurais pas aussi des fois modifié les premières lignes, d'où nécessité de modifier la dernière pour que ça refonctionne ?








scratch

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  Anthoblack le Mer 24 Mar 2010, 22:42

nvs a écrit:
DjMan42 a écrit:J'ai modifié la dernière ligne et tout fonctionne.
t'aurais pas aussi des fois modifié les premières lignes, d'où nécessité de modifier la dernière pour que ça refonctionne ?
En effet, comment pourrait savoir le compilateur ce qu'est "NOIR" si tu ne l'informes pas...

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  DjMan42 le Mer 24 Mar 2010, 23:07

Effectivement, il devrait y avoir quelques bouts de code au dessus, mais aucune ligne de ce style n'apparait dans le code.
Je viens testé : En rajoutant ces 2 bouts de code au tout début, tout fonctionne sans autre modification. Enfin.

Couleur NOIR = Couleur.NOIR; // couleur est une énumération
Couleur BLANC = Couleur.BLANC;

Encore merci pour l'astuce.

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  nvs le Mer 24 Mar 2010, 23:15

DjMan42 a écrit:Encore merci pour l'astuce.
pour info Smile










flower

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  DjMan42 le Jeu 25 Mar 2010, 21:26

Bonsoir à tous.
J'ai un problème avec cette méthode de test.
Le test assert equals ne fonctionne pas.
Que quelqu'un veuille bien m'aider

Voici la méthode de test.
Code:

 */
    // parametres corrects
    @Test  public void testEtat_210() {
        Etat etat;
       Joueur winner; // Joueur gagnant
        winner = null;
        etat = new Etat(plateauMixte,joueurBlanc,winner,tab2Mixte);

   // voyons si tout a ete initialise
   assertEquals (joueurBlanc, etat.getJoueurCourant());
   }
    /*


Voici le code qui pose problème
Code:

public Joueur getJoueurCourant(){
        return joueurCourant;
}


J'ai déclaré un attribut joueurCourant de type Joueur.
Le constructeur recoit en paramètre joueurBlanc qui est un joueur de couleur Blanc.

Voici l'erreur qu'il me renvoit

Code:

testEtat_210(dames.TestEtat)
java.lang.AssertionError: expected: dames.Joueur<(BLANC)> but was: dames.Joueur<(BLANC)>
    at org.junit.Assert.fail(Assert.java:92)
    at org.junit.Assert.failNotEquals(Assert.java:689)
    at org.junit.Assert.assertEquals(Assert.java:127)
    at org.junit.Assert.assertEquals(Assert.java:146)
    at dames.TestEtat.testEtat_210(TestEtat.java:362)  // ICI ......................correspond eu test assertEquals
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
    at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
    at org.junit.runners.Suite.runChild(Suite.java:117)
    at org.junit.runners.Suite.runChild(Suite.java:24)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
    at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:159)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:119)
    at org.junit.runner.JUnitCore.runMain(JUnitCore.java:100)
    at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:54)
    at org.junit.runner.JUnitCore.main(JUnitCore.java:46)


DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  didi le Jeu 25 Mar 2010, 22:03

pour moi il menque de méthode equals pour te repondre

mentres ta méthode equals

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  DjMan42 le Jeu 25 Mar 2010, 22:26

Code:

public boolean equals(Object oPos){  // objet position.
        boolean estEgal = false;
        if(!(oPos instanceof Position)){  // Vérifie si on peux casté.
            // oPos en objet Position.
            estEgal = false;
        }else {
            Position posCasté = (Position)oPos;
            if( this.ligne == posCasté.getLigne() && this.colonne ==posCasté.getColonne())    // Vérifie l'égalité.
                estEgal = true;
        }
        return estEgal;
  }

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  karemkadidola le Jeu 25 Mar 2010, 23:33

didi a écrit:pour moi il menque de méthode equals pour te repondre

mentres ta méthode equals
la methode equals n'a rien à voir avec ce test surtout que tu l'as poussé à te monter la methode equals pour ses positions alors qu'ici on est entrain de parler de joueurs non ce qu'il faut voir c'est juste que dans ton constructeur avec paramètres tu as bien initialiser le joueurCourant, tu sais qlq chose du style joueurCourant = joueurBlanc; en supposant que plus haut tu avais qlq chose du style Joueur joueurBlanc = new Joueur (Couleur.BLANC);

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  DjMan42 le Ven 26 Mar 2010, 00:08

L'attribut joueur courant :

private Joueur joueurCourant;

J'ai instancier le joueur courant dans la méthode sans paramètre

this.joueurCourant = new Joueur (Couleur.BLANC);

Et la méthode getJoueurCourant :

public Joueur getJoueurCourant(){
return joueurCourant;
}


Je ne comprend pas, tout à l'air correct. ça fait un bon bout de temps que je cherche ....

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  DjMan42 le Ven 26 Mar 2010, 00:21

Une dernière question. Promis.
----------------------------------------------------------------
0 1 2 3 4 5 6 7 8 9
0
1
2
3 p
4
5
6
7
8
9

Pointeur non null
------------------------------------------------------
J'ai fait les test pour une ligne ou un colonne invalide mais dans
ce cas-ci que faut-il faire ?
Que représente le pointeur null Question

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  karemkadidola le Ven 26 Mar 2010, 00:37

c peut être mieux de commencer par qu'est ce que un pointeur null...techniquement parlant c une adresse mémoire dont le contenu est vide (jusqu'à ce que...) si tu déclares juste ton objet sans l'instancier ex Position position; ici position est une reference (adresse mémoire) qui ne contient rien, on dit qu'il est null (car il ne pointe vers aucun objet), mais dès que tu auras fait "position = new position ( 3,6) tu instancies ton objet à ce moment là "position" (rappelle toi que c n'est rien d'autre qu'une adresse) elle va contenir l'adresse mémoire où se trouve ton objet: il va donc pointer vers cet objet, autrement dit il aura une reference vers cet object...tu comprends donc qu'il ne sera plus "null" donc pour revenir à ta question ce qu'il faut faire c'est
tu instancies ta position en lui donnant (3,1)
et tu fais un "assertNotNull (ici tu mets la position crée) et ça devrait aller normalement


Dernière édition par karemkadidola le Ven 26 Mar 2010, 00:48, édité 1 fois

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  DjMan42 le Ven 26 Mar 2010, 00:43

Merci c'est très clair.
Et Bonne nuit à tous.

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  DjMan42 le Sam 27 Mar 2010, 15:36

didi a écrit:pour moi il menque de méthode equals pour te repondre

mentres ta méthode equals

T'avais tout à fait raison c'était la méthode equals de la Classe Joueur.

Voici comment je l'avais écrite
Code:

public boolean equals (Object o){
        boolean estEgal = false;
        if((o instanceof Couleur)){
            Couleur couleur = (Couleur) o ;
            if(this.couleur == couleur)
                estEgal = true;
        } 
        return estEgal;
    } 


La méthode equals corrigé.

Code:

   public boolean equals (Object o){
      boolean estEgal = false;
      if((o instanceof Joueur)){
         Joueur j = (Joueur) o ;
         if(couleur == j.getCouleur())
            estEgal = true;
      }
      return estEgal;
   }

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  Dj x-fuse le Sam 27 Mar 2010, 15:42

Prends l'habitude quand tu vérifies l'égalité d'une entité (un objet) de vérifier tous ses attributs.

Dj x-fuse

Nombre de messages : 658
Age : 27
Prénom : Jonathan
Statut : 4ième sécu
Localisation : IRL
Date d'inscription : 18/10/2008

Revenir en haut Aller en bas

resolu Re: TestEtat

Message  Contenu sponsorisé Aujourd'hui à 18:53


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum