PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eine Frage über Unit-Tests mit Java



mabaosheng
10-04-2007, 16:53
Hallo zusammen,
ich habe eine Frage über Unit-Test mit JUnit. Es geht um einen Vergleich zwischen 2 Arrays. Ich möchte testen, ob die Elemente von 2 Arrays gleich ist oder nicht, wie z.B. array1={1 2 3}, array2={1 2 3}. die 2 Arrays haben die gleichen Elementen. aber welche Funktion soll ich benutzen. Ich habe probiert, mit assertEquals(array1,array2). Aber es kann nicht klappen. die Ergebnis ist false. Kann jemand mir welche Hinweise geben.
Vielen Dank!

fs111
10-04-2007, 19:17
Ich mache das in mehreren Schritten:


assertEquals("arrays should have the same size", array1.length, array2.length);
for(int i = 0; i< array1.length; i++){
assertEquals("elements should be the same", array1[i], array2[i]);
}


Damit garantierst Du, dass beide gleich lang sind und alle Elemente an den entsprechenden Positionen gleich sind, das sollte genügen.
HTH

fs111

Liberty
10-04-2007, 21:10
Moin,

genau dieses array-Problem wurde jetzt in den 4er-Versionen von JUnit noch viel eleganter gelöst:

Die neuen assertArrayEquals(...)-Methoden (http://www.junit.org/junit/javadoc/4.3/org/junit/Assert.html)

So long,
Liberty

fs111
10-04-2007, 23:14
Das ist nett, wenn jetzt noch maven-surefire mit Junit4 umgehen könnte...

fs111