2. WIKIPEDIA
• Lounit testing è una procedura usata per verificare
(testing) singole parti di un codice sorgente (unit).
• Semplifica le modifiche.
• Semplifica l'integrazione.
• Fornisce documentazione.
• Separa l'implementazione dall'interfaccia.
3. SEMPLIFICA LE MODIFICHE
• Test"polaroid": verifica la stato corrente del
codice e permette di capire se una modifica
al codice introduce bug: refactoring.
• Unit
test continuo (Ruby, Javascript): i test
vengono eseguiti ad ogni modifica.
4. SEMPLIFICA L'INTEGRAZIONE
• Verificando il funzionamento di ogni
singola unità, nell'integrazione tra più unità
non ci si preoccupa del funzionamento
delle altre.
• Si
controlla meglio la propagazione dei
bug.
5. FORNISCE
DOCUMENTAZIONE
• Lo Unit Test è la documentazione viva dell'unità in test.
• Il Test
usa il codice secondo le specifiche e le verifica
continuamente.
• Il Test è l'implementazione della specifica.
6. SEPARA L'INTERFACCIA
DALL'IMPLEMENTAZIONE
• Poichéle classi vanno testate in modo isolato, le collaborazioni
vanno "falsificate" (mock).
• Quindi, la classe in test usa le collaboratrici solo tramite la
loro interfaccia.
• Altrimenti, sto testando anche le collaboratrici.
7. NON È UNIT TEST SE:
• Accede al database.
• Parla con la rete.
• Tocca il filesystem.
• Non può essere eseguito in contemporanea ad altri test.
• Bisogna preparare l'ambiente.
8. NIENTE SCUSE!
• Non ho tempo.
• Non è codice di produzione.
• Se cambio le classi devo cambiare i test.
• Il mio codice non ha bisogno di test!