05 unit testing

317 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
317
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

05 unit testing

  1. 1. UNIT TESTING Talk 5
  2. 2. WIKIPEDIA• Lounit testing è una procedura usata per verificare (testing) singole parti di un codice sorgente (unit). • Semplifica le modifiche. • Semplifica lintegrazione. • Fornisce documentazione. • Separa limplementazione dallinterfaccia.
  3. 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. 4. SEMPLIFICA LINTEGRAZIONE• Verificando il funzionamento di ogni singola unità, nellintegrazione tra più unità non ci si preoccupa del funzionamento delle altre.• Si controlla meglio la propagazione dei bug.
  5. 5. FORNISCE DOCUMENTAZIONE• Lo Unit Test è la documentazione viva dellunità in test.• Il Test usa il codice secondo le specifiche e le verifica continuamente.• Il Test è limplementazione della specifica.
  6. 6. SEPARA LINTERFACCIA DALLIMPLEMENTAZIONE• 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. 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 lambiente.
  8. 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!
  9. 9. IN QUALUNQUE LINGUAGGIO• Java: JUnit, TestNG, Jtest, JExample,• Delphi: DUnit• C#:csUnit, MbUnit, NUnit• Ruby: RSpec• Javascript: JSUnit, • Python: unittest, Nose, py.test• C++: CppUnit, CPUnit, QtTest• ...
  10. 10. ESEMPIO PRATICO

×