1 Spring Framework, Testing Esistono due categorie di test: Unit Test Integration Test Lo Unit Test: testa un singolo componente in isolamento senza che interagisca con le sue dipendenze. L’ Integration Test: testa l’applicazione (o parte di essa), per garantirci che i diversi componenti del sistema interagiscono correttamente tra loro Spring offre delle utilities per effettuare questi test. © copyright ADD VALUE Confidential
2 Spring Framework, Testing - Unit Test (1) © copyright ADD VALUE Confidential Per testare in isolamento un singolo componente è importante slegarlo dalle sue dipendenze. Vengono mappate le dipendenze reali con delle «controfigure», istruite a dovere e si controlla che il software reagisca correttamente. La best-practises per il testing si basa sulle tre A: Arrange (preparazione dell’ambiente, istruzione oggetti e mock) Act (chiamata all’oggetto) Assert (valutazione del risultato)
3 Spring Framework, Testing – Unit Test (2) © copyright ADD VALUE Confidential Le fasi reali per uno Unit Test con Mock sono: 1. Creazione di una classe di test 2. Annotazione del metodo che testa 3. Creazione del Mock e inizializzazione 4. Utilizzo di Assert per chiamare e verificare i risultati
4 Spring Framework, Testing – Integration Test (1) © copyright ADD VALUE Confidential I test di integrazione «mettono assieme tutti i pezzi». Si dovrebbero testare: Comportamento a fronte Boundary Values (casi limite) Risultati prodotti: – Valori di ritorno di una funzione – Dati scritti dall’applicazione (su DB, su file … )
Spring Framework, Testing – Integration Test (2) Perché il test di integrazione? Perché secondo noi un test unitario non dice abbastanza sul funzionamento dell’applicazione. Perché dovremmo testare le interazioni del sistema: – I test unitari potrebbero terminare correttamente, ma se una classe ha delle dipendenze che sono state modificate, la loro interazione potrebbe non funzionare. – Se dei servizi sono sviluppati da persone diverse ci potrebbe essere stato un problema di incomprensione nell’implementazione dei servizi esterni. © copyright ADD VALUE Confidential5
6 Spring Framework, Spring Framework – Testing © copyright ADD VALUE Confidential Alcuni esempi… Riferimento: it.addvalue.examples.example07_Testing