Martin Fowler ha aggiornato la sua white paper in cui illustra le due principali varienti di TDD, vale
a dire
- l'approccio classico,
in cui spesso, all'interno degli unit test, nel caso in cui esso coinvolga più
oggetti interconnessi, si fa uso di stub e più raramente di mock;
- l'approccio mocking, in
cui all'interno del metodo di test, oltre al SUT (System
Under T est), sono presenti esclusivamente oggetti
mock.
La caratteristica fondamentale del primo approccio è che il test è basato
sull'analisi dello stato degli oggetti al termine dello stesso, mentre
nel secondo caso assume rilevanza l'analisi comportamentale del SUT.
Il risultato è che, sebbene un TDD basato su mock garantisca un miglior
isolamento del test, al tempo stesso risulta inevitabilmente legato alla
particolare implementazione del SUT e non solo alla sua interfaccia. Per questa
ragione personalmente preferisco (e metto in pratica) l'approccio classico,
utilizzando i mock solo ove strettamente necessario.
Mi piacerebbe sentire altri pareri in proposito.
powered by IMHO 1.3