Skip to content

Instantly share code, notes, and snippets.

@ValentinaServile
Last active March 28, 2017 20:47
Show Gist options
  • Save ValentinaServile/17b55a17bb3fc80fbb70 to your computer and use it in GitHub Desktop.
Save ValentinaServile/17b55a17bb3fc80fbb70 to your computer and use it in GitHub Desktop.
Appunti sul Test Driven Development

TDD ITA

Tre principi fondamentali

Le tre regole del Test Driven Developement sono:

  • non si può scrivere codice di produzione finché non si è scritto un test che fallisce

  • non si può scrivere più test di quanto sia sufficiente a far fallire il compilatore

  • non si può scrivere più codice di produzione di quanto sia sufficiente per far passare il test che correntemente fallisce

I test hanno la funzione di tenere il codice pulito e mantenibile, in quanto forniscono un check immediato per qualsiasi bug si venisse a creare durante un'eventuale riscrittura.

Struttura di un test

Ogni test dovrebbe essere composto dalle seguente parti:

  • costruzione dei dati di test

  • operazione sui suddetti dati

  • confronto fra il valore restituito dall'operazione e il valore previsto

ogni test deve rappresentare un singolo concetto

FIRST

Inoltre ogni test per essere pulito deve rispettare i seguenti cinque requisiti:

  • Fast

    deve runnare velocemente per incoraggiare gli sviluppatori ad eseguirlo più volte

  • Indipendent

    non deve dipendere da altri test (un test non deve settare le condizioni per l'esecuzione di un altro test) per non offuscare il processo di debugging

  • Repeatable

    ripetibile in ogni ambiente, che sia quello di produzione o di qa etc.

  • Self-validating

    deve avere un output booleano: fallire o passare, non devono esserci ulteriori operazioni da eseguire per verificare che il test sia passato o meno

  • Timely

    devono essere scritti prima del codice di produzione necessario a farli passare, altrimenti il codice di produzione non verrà disegnato appositamente per essere testabile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment