Devo testare questi metodi. Precedentemente ho creato una classe che testa il metodo Fibonacci. Ad esempio:
codice:@Test assertEquals(1, fibonacci(0));
come potrei fare con il metodo toString, equals e clone utilizzando JUnit ?
Devo testare questi metodi. Precedentemente ho creato una classe che testa il metodo Fibonacci. Ad esempio:
codice:@Test assertEquals(1, fibonacci(0));
come potrei fare con il metodo toString, equals e clone utilizzando JUnit ?
Ultima modifica di LeleFT; 10-06-2015 a 14:33
Es.
codice:public void testTwoIntegersEqual() { assertTrue(new Integer(123).equals(new Integer(123))); } public void testTwoIntegersNotEqual() { assertFalse(new Integer(123).equals(new Integer(12345))); } public void testIntegerNotEqualToOtherType() { assertFalse(new Integer(123).equals("xyz")); }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ho provato a creare un metodo che testa il metodo toString della classe Targa.
il test mi da esito negativocodice:@Test public void testToString() { String toString = targa1.toString(); assertTrue(toString.contains("Targa[c1 = " + targa1.c1 + "; c2 = "+ targa1.c2 + "; c3 = " + targa1.c3 +"]")); }![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
E cosa restituisce?
Un consiglio: invece di assertTrue usa assertEquals: in questo modo nel messaggio di errore ottieni qualche info in più:
String expectedValue = "PIPPO";
String actualValue = "PIPPA";
assertEquals(expectedValue, actualValue);
// l'errore dirà una cosa del tipo "expected PIPPO, actual value is PIPP[A]"
Comunque accedere dall'esterno direttamente a c1, c2 ecc è terribile D:
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
E' corretto testarla cosi ?
oppure direttamentecodice:@Test public void testToString() { Targa targa = new Targa("hgt", "455", "jjj"); assertEquals("Targa[c1 = " + targa.c1 + "; c2 = "+ targa.c2 + "; c3 = " + targa.c3 +"]", targa.toString()); }
il test mi da esito positivo. Ma è corretta la forma ?codice:Targa targa =new Targa("hgt","455","jjj"); assertEquals("Targa[c1 = hgt; c2 = 455; c3 = jjj]", targa.toString());
Ultima modifica di Bombonera; 11-06-2015 a 15:05
Sì, è corretta la forma. Ed è meglio dell'altra dove usi targa.c1 ecc... E ti spiego anche perché. Metti caso che il costruttore di Targa sia sballato, metti che sia "saltato" l'assegnamento ad un campo, che pertanto rimane a null. Siccome il toString usa quel campo e pure la concatenazione nel tuo test usa quel campo, avresti comunque un match ma testeresti una cosa fasulla ...![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet