Newsgroup: it.comp.programmare
Titolo: [ANN] - XP e TDD - Slide miei interventi al webbit.02

Ciao,
    a chi interessassero gli argomenti le slide dei miei due interventi sugli argomenti al
webbit.02 sono disponibili sul mio sito web a questi due URL:
XP:  
http://digilander.libero.it/bbossola/seminari/2002/webbit/xp/main.html
TDD: 
http://digilander.libero.it/bbossola/seminari/2002/webbit/tdd/main.html
    Se avete domande o vorreste chiarimenti sull'argomento postate sul NG (o
contattatemi), cerchero' di rispondervi nei limiti del mio (purtroppo scarso) tempo
disponibile :-) 
Saluti,
    Bruno.
---
| Bruno Bossola 
| A Java Software Engineer :-)
| 
http://digilander.iol.it/bbossola
|
| (rimuovere gli spazi dall'indirizzo per rispondere via email)

disponibile :-) 
Come si può strutturare un test che interessi la GUI?
-- 
Marco Barisione (ICQ 84277092)


Domanda spinosa :-), ma ho una risposta. Io personalmente lo strutturo sfruttando il
pattern MVC che, nel caso di Java, e' disponibile in Swing. In pratica scrivi i test che
ti servono sui modelli e scrivi un unico test che verifica poi che alle viste della tua
GUI siano attaccati quei particolari modelli. Chiaro?
Questa e' una domanda che circola da un po' sulla lista su TDD a cui non ho ancora avuto
tempo di rispondere... effettivamente forse dovrei :-)
Ciao,


GUI siano attaccati quei particolari modelli. Chiaro?
No :-)
Puoi, per favore, cercare di spiegarlo senza riferirti troppo a Java
(che non conosco)?



Okay, tieni conto che il pattern MVC (Model-View-Controller) e' un pattern generico, che
(per fortuna) in Java e' gia' implementato nei componenti standard per la costruzione di
GUI. Se non conosci MVC ti consiglio di dare un'occhiata in rete per documentarti un po':
semplificando al massimo comunque nel pattern MVC il dato (modello) e' separato dalla sua
rappresentazione (vista) e dai relativi meccanismi di interazione (controllo).
Per testare una GUI devi innanzitutto fare in modo che sia costruita rispettando questo
pattern, ovvero che la vista si limiti a visualizzare i dati contenuti nel modello. Fatto
salvo che il meccanismo MVC funzioni (e questo ti deve essere garantito da opportuni test
che pero' sono di norma di pertinenza di chi sviluppa le GUI, e nel caso di Java sono di
pertinenza della Sun o del vendor della VM) a questo punto e' possibile scrivere un test
che riguardi semplicemente i modelli e i relativi controlli. Questi sono oggetti che di
norma sono disaccoppiati dalla GUI (le viste) e che possono fare parte di un test scritto
in modo tradizionale. 
Quello che rimane da fare e' solo poi accertarti con un test che alle viste della tua GUI
siano attaccati i modelli corretti. 
Mi rendo conto che e' un po' complicato e che anch'io non sono il massimo nello spiegarmi
(ho poco tempo :-D): ti ho chiarito un po? Cerca di indicarmi quali punti non sono chiari.


in modo tradizionale. 
Quello che non riesco a capire è come posso verificare che le viste
funzionino correttamente, che visulizzino esattamente quello che
voglio io e non qualcos'altro e che i controlli generino i giusti
eventi.
Ad esempio come posso essere sicuro che dopo aver modificato una linea
di codice venga visualizzato un cerchio rosso e non verde senza dover
fare tutto manualmente (altrimenti a cosa servirebbero i test
automatici?)? Oppure che se premo un tasto sulla toolbar il file venga
salvato invece di creare un nuovo documento?



Agganci ai modelli dei bottoni della toolbar dei MockObject, ovvero delle implementazioni
"finte" degli oggetti reali che dovranno funzionare, e verifichi che siano chiamati quelli
corretti. (per qualche info veloce: 
http://www.mockobjects.com/
)
