risorse | test double

Test double

Verificare un sistema software può risultare complicato quando si rende necessario accedere a risorse di difficile reperibilità. Una possibile soluzione consiste nel sostituire tali risorse con oggetti temporanei che ne emulino il comportamento.

Il test double (noto anche con il nome di imposter), è un artefatto che per convenienza sostituisce un componente utilizzato dal sistema sotto verifica.

Esistono diverse tipologie di test double:

Dummy Object

Un oggetto dummy è un oggetto che non viene utilizzato, la cui presenza è tuttavia richiesta per il completamento della verifica; tipico il caso di un parametro di funzione che non viene chiamato in gioco durante il test la cui assenza causa però un errore:

Test Stub

Uno stub fornisce risposte cablate per causare particolari comportamenti del sistema sotto verifica, per i soli casi previsti dalle procedure di test:

Test Spy

È uno stub che in più registra le chiamate effettuate dall'oggetto sotto test per permettere di verificare a posteriori la corretta comunicazione con il componente originale:

Fake object

È un oggetto che sostituisce il componente originale per ragioni che esulano dalla verifica del buon funzionamento del sistema (per esempio per questioni di praticità o di efficienza).

Mock Object

È uno stub che verifica l'ordine e la natura delle chiamate effettuate dal sistema sotto verifica:

La differenza tra test stub/spy e mock object è sostanziale: mentre i primi consentono di verificare lo stato del sistema (in virtù del fatto che l'esito della verifica viene determinato solo al termine dell'interazione tra il sistema e il test double), i secondi ne verificano il funzionamento, essendo in grado di stabilire l'esito della verifica durante lo svolgimento dell'interazione stessa.

Riferimenti

  1. Fowler, Martin. "Mocks Aren't Stubs". Martin Fowler. <http://martinfowler.com/articles/mocksArentStubs.html>. Visitato il 5 Ottobre 2011.
  2. Meszaros, Gerard. "Test Double". xUnit Patterns.com. <http://xunitpatterns.com/Test%20Double.html>. Visitato il 5 Ottobre 2011.
  3. Wake, Billy. "Fake and Mock Objects in Pictures". xUnit Patterns.com. <http://xunitpatterns.com/Test%20Double.html>. Visitato il 25 Settembre 2015.

Pagina modificata l'8/11/2011