Login
Cerca all'interno di JavaPortal
Help
Home Page Documentazione Forum Progetti Partner Pubblica!
Documentazione > Tutorial > Documentazione, debugging e test unitari con BlueJ
Modifica Impostazioni
Hide
Best Practices
EJB
Frameworks
Howto
J2EE
J2ME and Wireless
J2SE
JSP e Servlet
Java Application Server
Java IDE/Tools
Java Media
Java Security
Java Sys Admin
Java e XML
Java e SQL
OpenSource Java
Patterns
Repository
Tesi
UML
Web Services
Slide
White Paper di jws.it
project management
Eventi
Groovy

Hai una tesi in Java?
Tesine preparate
per esami?
Pubblica tutto su
JavaPortal!

Scrivi al nostro staff


Javaday Roma 2009: Ecco le slide


John Fitzgerald Kennedy
L'uomo è il computer più straordinario di tutti


J2EE Patterns - Parte 1: Data Transfer Object


Rss Feed
Home Page
Articoli
News
Forum
Classi

  Visualizza Commenti (0) Aggiungi Commento    
Add to Shortcuts
 
Vota l'articolo
Documentazione, debugging e test unitari con BlueJ
By Luzio Menna
5 settembre 2005

  Documentazione, debugging e test unitari con BlueJ
Program Il debugging
Program I test unitari
Program La convalida del codice
Program Conclusioni

La documentazione

Nel precedente tutorial abbiamo realizzato un progetto piccolo, ma completo.

Adesso è opportuno eseguire una serie di passi per perfezionare il progetto.

Il primo di questi è la generazione della documentazione, operazione facilissima se siete online, infatti basta andare sul menù Strumenti e cliccare su Documentazione di progetto. Invece se vi trovate offline occorre spuntare la casella di controllo nelle preferenze della documentazione, ci si arriva tramite il menù Strumenti >> Preferenze... poi selezionare la sezione Varie, come nella figura 1.

Fig. 1  Documentazione, debugging e test unitari con BlueJ

Ed ecco generata la nostra documentazione in perfetto stile Java :)



Il debugging top

Ora andiamo ad usare un altro importante strumento dell'ambiente bluej: il debugger. Naturalmente quando si sviluppano i software prima si eseguono i test ed alla fine si genera la documentazione, ma visto la semplicità del nostro progetto ho ritenuto meglio eseguire il contrario ;). Ora prima di usare il debugger dobbiamo cambiare un altra opzione nelle Preferenze..., nella sezione Varie deselezionare l'ultima opzione (fare riferimento alla fig.1). Bene ora procediamo, la prima operazione è creare un oggetto semaforo, per il nome andrà bene quello di default, successivamente apriamo l'editor della classe Semaforo e iniziamo ad inserire i nostri breakpoint, tramite il menù Strumenti >> Metti/Togli Breakpoint dell'editor .Dove abbiamo posizionato il nostro breakpoint comparirà un'icona rossa con la scritta “stop” . Lanciando il metodo dove è posizionato lo “stop” si aprirà una finestra come quella in fig. 2

 
Fig. 2  Documentazione, debugging e test unitari con BlueJ
 
cliccando su “A passi” avanzeremo di riga per riga il nostro codice, infatti nell'editor si visualizzerà una freccia nella riga dove ci troviamo. La finestra di debug è composta da:

il thread, il nostro programma

La sequenza di chiamata, il nostro metodo

Le variabili statiche, nel nostro caso non presenti

Le variabili locali, nel nostro caso non presenti

Le variabili d'istanza, che nel nostro caso sono il verde, il giallo e il rosso

Invece i bottoni sono a disposizione per effettuare le seguenti operazioni:

Blocca

A passi

A passi in

Continua

Termina

–

–

–

–

–

ferma l’esecuzione del programma (al pari di un breakpoint nel editor)

esegue il programma passo dopo passo (riga per riga)

si differenzia dall’istruzione precedente perché se incontra una chiamata ad un metodo lo esegue riga per riga e non come una semplice istruzione

riprende l’esecuzione del debbuger quando si è premuto il tasto Blocca

blocca il debbuger (Si consiglia di usare poco questo comando perché non è ben accetto dalla JVM)

Il debugger di bluej, come si può notare ,è minimalista, ma racchiude tutto il necessario.



I test unitari top

Un altra importante caratteristica che ci offre questo ambiente è l'uso dei test unitari sul nostro progetto attraverso l'integrazione con Junit. I test unitari si possono definire come test individuali di unità separate di un software (programma), nella programmazioni ad oggetti, tipicamente queste unità sono le classi e i metodi. Per prima cosa osservate la fig. 3 dove sono selezionati gli strumenti per effettuare i test.

Fig. 3 Documentazione, debugging e test unitari con BlueJ

Ora clicchiamo con il tasto destro del mouse sopra la classe Semaforo e scegliamo l'ultima opzione dal menù contestuale: Crea la classe di test, quindi nella nostra area di lavora subito comparirà una classe di colore verde anziché arancione dal nome SemaforoTest (fare riferimento alla fig. 4).

 

Fig. 4 Documentazione, debugging e test unitari con BlueJ

Ora sempre con il tasto destro sulla classe del test scegliamo Crea il metodo di test... e digitare nella finestra appena aperta “Verde”, poi analizzeremo perché abbiamo fatto questo, successivamente quando notiamo che sul lato sinistro dell'ambiente si accende la luce rossa vicino alla voce registra, andiamo a creare il nostro semaforo nel scrivania degli oggetti e da lì lanciamo il metodo go() e premiamo ok. Bene abbiamo realizzato il nostro primo test, non vi dimenticate di chiudere la registrazione cliccando sul tasto Fine nel lato sinistro di bluej. Per analizzare il test, apriamolo nell’ editor e osserviamo com'è costituito:

/**

*The test class SemaforoTest.

*

*@author Luzio Menna

*@version 30 luglio 2004

*/

publicclass SemaforoTest extends junit.framework.TestCase

{

/**

*Default constructor for test class SemaforoTest

*/

public SemaforoTest()

{

}

/**

*Sets up the test fixture.

*

*Called before every test case method.

*/

protectedvoid setUp()

{

}

/**

*Tears down the tes tfixture.

*

*Called after every test case method.

*/

protectedvoid tearDown()

{

}

publicvoid testVerde()Semaforo semaforo1 = new Semaforo(false, false, true);

assertEquals(true, semaforo1.go());

{

}

}

deve comparire qualcosa di simile. L'ultimo metodo come si può notare si chiama testVerde che è il nome chegli abbiamo assegnato noi precedentemente, ricordate??? Questo test non fa' altro che confrontare il valore true con il valore restituito dal metodo go(), che come si può intuire deve restituire true (perché al semaforo si passa con il verde accesso), la nostra classe per accesso intende true. Si noti che bluej genera automaticamente i test senza aver bisogno di scrivere una riga di codice, similmente alla realizzazione di una macro. Ora effettuiamo un altro test sempre sulla classe semaforo, però prima di farlo modifichiamo il metodo stampaComando nel seguentemodo, così da poter generare un test:

/**

* Con Questo metodo si verifica se una macchina può passare o meno

* @return "true" se la macchina può passare, "false" se si deve fermare

*/

          boolean stampaComando() {

boolean sCmd;

if(go())

sCmd = true;

else

sCmd = false;

return sCmd;

}

Ancora una volta creiamo l'oggetto semaforo e poi lanciamo di nuovo Crea la classe di test, questa volta gli metteremo nome StopCmd , compiendo i passi che sono stati mostrati in precedenza proseguiamo fino all'ultima schermata, definiamo questa asserzione: “Uguale a true”. Così facendo strutturiamo il test in modo che da controllare che la macchina passi con il verde cioè, se c’è il verde stampa la scritta “GO >>>”. Lanciamo itest per verificarne la correttezza attraverso l’area dedicata: Visualizza >> Mostra i risultati dei test (come fig. 5)

 

Fig. 5 Documentazione, debugging e test unitari con BlueJ

In questo test non si sono riscontrati errori , altrimenti sarebbero stati segnalati in basso ed inoltre la linea verde che separa le due aree sarebbe stata di colore rosso.



La convalida del codice top

Per eseguire questa ultima parte del tutorial occorre installare un plug-in di nome Check-style,a questo link. Una volta scaricato il pacchetto lo decomprimiamo all’interno della cartella di bluej e successivamente riavvieremo bluej. Adesso nel menù strumenti comparirà una nuova voce: checkstyle, clicchadoci sopra e si aprirà una finestra, simile a quella di fig.6 contenetetutti gli avvisi sulle parti di codice non conforme, visualizzando riga e colonna dov'è presente l'errore. La finestra è divisa in due parti, sulla sinistra sono presenti i file del progetto, inclusi i file di test, e sulla destra sono presenti: righe, colonne ed errori.

Fig. 6 Documentazione, debugging e test unitari con BlueJ 

Di default questo plugin utilizza la “Sun Code Convention”, ma nulla ci vieta di creare un proprio set di regole per poi controllare se il codice da noi scritto le rispetta. Per originare un proprio set di regole bisogna creare ( o modificare) un file xml, per esempio il file checkstyle_checks.xml, ma questo argomento esce fuori dagli scopi di questo tutorial. Naturalmente il file Semaforo.java è già stato corretto, però vi potetedivertire a correggere gli altri file anche quello del test.



Conclusioni top

La fig.7 mostra il progetto nel suo aspetto finale

Fig. 7 Documentazione, debugging e test unitari con BlueJ

Bene il nostro viaggio alla scoperta di bluej è terminato, spero che vi siete innamorati di questo ambiente poco conosciuto qui in Italia. Vi consiglio di dare un' occhiata al codice sorgente perché ho effettuato delle modifiche che non ho presentato durante la stesura dell'articolo. Per qualsiasi dubbio e/o chiarimento non esitate a contattarmi.

Fai il DownLoad del codice sorgente incrocio.zip

Nel prossimo tutorial vi mostrerò come Bluej sia particolarmente adatto alla stesura delle Applet


 Attachments List
Generic Documentincrocio2
Username:
Password:
To sign up for an account, click register... Register
Hide





Powered By



Campagna Anti-IF


Skin


PARTNER
Zio Budda
HostingJava


LICENZA



Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati sotto licenza Creative Commons

Sitemap  © 2002-2004 Copyright Information. Privacy . Today is domenica 1 agosto 2010