La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.

Presentazioni simili


Presentazione sul tema: "Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i."— Transcript della presentazione:

1 Test con JUnit

2 zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i programmi invece di scrivere delle classi con il metodo main(). zÉ sufficiente: scrivere una sotto-classe della classe TestCase yaggiungere ad essa dei metodi di test

3 Junit zTest framework yplug-in di Eclipse yper fare test cases come codice Java yframework: set di classi e convenzioni per usarle zTest code testRaddoppia2(){ } zProduction code int raddoppia(){ }

4 Junit É possibile usare JUnit allinterno di Eclipse per eseguire i programmi invece di scrivere delle classi con il metodo main(). zÉ sufficiente: scrivere una sotto-classe della classe TestCase yaggiungere ad essa dei metodi di test

5 Elementi del framework zassert*() yfunzioni di confronto zTestCase yclasse contenente serie di test yuna per ogni classe di production code yvari test per ogni metodo di classe production zTestSuite yclasse contenente serie di TestCase

6 Codice generato automaticamente da Eclipse Deve iniziare sempre con test TestCase Class import junit.framework.TestCase; public class StackTester extends TestCase { public StackTester(String name) { super(name); } public void testStack() { Stack unoStack = new Stack(); if(!unoStack.isEmpty()) { System.out.println(Lo stack dovrebbe essere vuoto!); unoStack.push(10); unoStack.push(-4); System.out.println(Ultimo elemento: + unoStack.pop()); System.out.println(Primo elemento: + unoStack.pop()); } }

7 Assert*() zper condizione yassertTrue(message when test fails, condition); zper valori di ritorno object, int, longs, byte yassertEquals(expected_value, expression); zper valori di ritorno float, double: yassertEquals(expected_value, expression, error); zse la condizione testata ye vera, esegue istruzione seguente ye falsa, break a fine metodo

8 Assert (1) zSono metodi pubblici definiti nella classe TestCase che iniziano con assert e sono sono usati nei metod di test yassertTrue(messaggio, condizione); Es. assertTrue(stack non vuoto, unoStack.empty()); zSe la condizione è falsa: yIl test fallisce e il resto del metodo non viene eseguito yViene stampato il messaggio zSe la condizione è vera non succede nulla

9 Assert (2) zPer oggetti, interi, long, byte: yassertEquals( valore_atteso, espressione); Es. assertEquals( 2, unoStack.size() ); zPer valori floating point: yassertEquals(valore_atteso, espressione, errore); Es. assertEquals(1.0, Math.cos(3.14), 0.01);

10 Assert Esempio public void testStack() { Stack aStack = new Stack(); assertTrue(Stack should be empty!, aStack.isEmpty()); aStack.push(10); assertTrue(Stack should not be empty!, !aStack.isEmpty()); aStack.push(-4); assertEquals(-4, aStack.pop()); assertEquals(10, aStack.pop()); }

11 Un concetto per volta.. public void testStackEmpty() { Stack aStack = new Stack(); assertTrue(Stack should be empty!, aStack.isEmpty()); aStack.push(10); assertTrue(Stack should not be empty!, !aStack.isEmpty()); } public void testStackOperations() { Stack aStack = new Stack(); aStack.push(10); aStack.push(-4); assertEquals(-4, aStack.pop()); assertEquals(10, aStack.pop()); }

12 TestSuite zCombina vari test case in una test suite: public class AllTests extends TestSuite { public AllTests(String name) { super(name); } public static TestSuite suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(StackTester.class); suite.addTestSuite(AnotherTester.class); }

13 Esecuzione di una test suite zConsiste nelleseguire tutti i test case aggiunti alla test suite zSi esegue esattamente come un test case

14 Funzionamento zPer un test case JUnit: yEsegue tutti i suoi metodi di test pubblici xOvvero quelli che iniziano con test yIgnora tutto il resto zLa classe può contenere metodi di supporto (helper methods) yNon sono pubblici o non iniziano con test yPossono essere chiamati dai metodi di test

15 Junit - set up zin Eclipse zaprire projects property window zjava build path zlibraries zexternal jar yadd org.junit

16 Run as JUnit Test zRun zRun As.. zJunit Test

17 Red / Green Bar expected but was


Scaricare ppt "Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i."

Presentazioni simili


Annunci Google