[JUnit / assert] assertEquals bloque quand méthode equals() renvoie faux
Bonjour,
je teste une classe Matrice via Junit.
Cette classe à un attribut int[][] (la matrice) et tout un tas de méthode pour interagir avec ce tableau 2D.
Pour pouvoir tester cette classe, j'ai surchargé la methode equals de la façon suivante :
Code:
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
|
/**
* equals : indique si un autre objet TabInt est egal a celui-la
* @param tab : Objet avec lequel on fait la comparaison
* @return true si l'objet est le meme que celui passe en argument
*/
public boolean equals(Object mtx)
{
boolean egal = true;
if(this.getClass().getName() != mtx.getClass().getName())
egal = false;
else if((this.getNbCol() != ((Matrice) mtx).getNbCol()) || (this.getNbLigne() != ((Matrice) mtx).getNbLigne()))
egal = false;
else
{
for(int i = 0; i<this.getNbLigne() && egal; i++)
{
for(int j = 0; j<this.getNbCol(); j++)
{
if(this.getPixel(i, j) != ((Matrice) mtx).getPixel(i, j))
{
egal = false;
break;
}
}
}
}
System.out.println(egal);
return egal;
} |
ça marche bien quand les matrices sont effectivement égale, mais quand elles ne le sont pas, la méthode imprime bien false, mais le teste JUnit reste bloqué, il ne dépasse jamais le AssertEquals.
Je comprends pas ce qu'il se passe. Je pense que ça vient de ma méthode equals vu qu'un assertEquals(2,4) (par exemple) ne bloque pas mon test...
Toutes les pistes de recherches sont les bienvenues.
Merci d'avance