[JUnit] échec d'un AssertEquals
Bonjour,
je suis en train d'écrire des tests Unitaires sous Eclipse Galileo, avec Java 1.6 et JUnit 3.8.2.
Sur le tuto de Romain Guy, j'ai cru comprendre que AssertEqual vérifiet que deux objets sont égaux.
Je teste une classe de tableau d'entier. Cette classe contient un attribut int[] et différentes méthodes pour intéragir avec ce tableau.
Pour instancier un objet de cette classe, j'ai deux constructeurs possibles :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| /**
* constructeur a partir d'un tableau d'entier (copie du tableau)
* @param tableau d'entiers
*/
public TabInt(int[] tableau)
{
this.tab = tableau;
}
/**
* constructeur d'un tableau vide
* @param taille du tableau a instancier
*/
public TabInt(int taille)
{
this.tab = new int[taille];
} |
Je veux vérifier que mes deux méthodes de construction arrivent au même résultat.
Pour ce faire, j'instancie un objet par un des constructeurs dans le setUp :
Code:
1 2 3 4 5
| public void setUp() throws Exception
{
int[] tableau = {0,1,2,3};
this.tab = new TabInt(tableau);
} |
et l'autre dans directement dans la méthode de test :
Code:
1 2 3 4 5 6 7 8 9 10
| public void testTabInt2()
{
TabInt tab2 = new TabInt(4);
tab2.setValeur(0, 0);
tab2.setValeur(1, 1);
tab2.setValeur(2, 2);
tab2.setValeur(3, 3);
assertEquals(tab2, tab);
} |
et j'obtiens le résultat suivant :
Citation:
junit.framework.AssertionFailedError: expected:<[0 , 1 , 2 , 3]> but was:<[0 , 1 , 2 , 3]>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:280)
at junit.framework.Assert.assertEquals(Assert.java:64)
at junit.framework.Assert.assertEquals(Assert.java:71)
at fr.statlife.LAM.test.TabIntTest.testTabInt2(TabIntTest.java:41)
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:597)
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 junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
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:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Je ne comprends pas pourquoi : mes deux objets devraient pourtant être égaux, non?
Toute aide ou conseil seront les bienvenue :mrgreen: