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

Slides:



Advertisements
Presentazioni simili
Teoria e Tecniche del Riconoscimento
Advertisements

Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) dopo ciascuna istruzione del main: public class Up extends Object { public.
1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Interfacce Java.
Package Utilizzo classi.
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Capitolo 4 Classi Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Capitolo 7 Programmazione con metodi e classi Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004.
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.
Programmazione in Java (3)
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola.
Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Terza parte: Programmazione ad oggetti in Java. Cosè Java Linguaggio di programmazione definito dalla Sun Obiettivo: sviluppo di applicazioni sicure,
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
1 Ultima Lezione del Corso di Fondamenti di Informatica 1 a.a – 06 Ma 29-Nov-2005.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
JAVA C import java.util.*; #include <stdio.h>
Soluzione Esercizio - Classe Vettore
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
Selezione (=scelta) con “if-else”
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Packages. Package: insieme di classi e interfacce in relazione Per formare un package basta inserire la direttiva come prima istruzione nel file sorgente.
Argomenti della lezione
Programmazione in Java Claudia Raibulet
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2003/2004.
Diagramma di flusso del problema del Supermercato.
void binario(int n); …………………
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
Multiset. Progettare (specifica con identificazione delle eventuali astrazioni necessarie, incluse eccezioni, e implementazione) del tipo di dato Multiset,
Diagramma di flusso del problema del Calcolo del Bollo di Circolazione
1 Simulated multiple inheritance Sandro Pedrazzini Approfondimento Simulated multiple inheritance in Java.
Conversione da base 10 a base X (Utilizzo della pila)
Corso di Programmazione in Java – Esercizio n° 001
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Collection & Generics in Java
Lezione n° 07 - Esercitazione
Esercizi.
Introduction to automatic ABMs documentation Keywords: Doxygen ODD protocol MASON documentation Simone Romano.
Stack Già visto l’altra volta senza gestione eccezioni, le prime tre slide servono solo come ripasso, dalla quarta argomento nuovo class Stack { int data[];
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Lezioni 1-2.
Esercitazione Ereditarietà Polimorfismo. Entita’ Geometrica PuntoCerchioPoligono TriangoloQuadrilatero Rettangolo Quadrato.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Nuove funzionalitA’ e caratteristiche del linguaggio
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Gestione dei thread in Java
Programmazione in Java
Unità didattica 1: Introduzione al linguaggio Java
Transcript della presentazione:

Test con JUnit

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

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(){ }

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

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

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()); } }

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

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

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);

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()); }

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()); }

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); }

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

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

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

Run as JUnit Test zRun zRun As.. zJunit Test

Red / Green Bar expected but was