Test double

I test double (informalmente indicati anche con la denominazione impropria di mock) sono uno strumento utilizzato in programmazione, specialmente orientata agli oggetti, come ausilio nello sviluppo di test unitari. Un test double è un oggetto che presenta la stessa interfaccia di un oggetto appartenente all'applicazione, ma ha un comportamento semplificato (o addirittura "vuoto"). Dato che l'interfaccia è la stessa, l'oggetto applicativo può essere "rimpiazzato" dal suo test double in quei test in cui il comportamento dell'oggetto reale non è rilevante o addirittura non è riproducibile. Le modalità con cui il test double viene sostituito all'oggetto reale sono in generale riconducibili alle tecniche di dependency injection. L'espressione "test double" è un calco da "stunt double", controfigura.

Tipi di test double

Il concetto di test double è molto ampio e può applicarsi a oggetti "controfigura" con caratteristiche strutturali e funzionalità molto diverse fra loro. La classificazione dei tipi di test double, e la corrispondente terminologia, è stata storicamente incerta, ma si è andata gradualmente standardizzando. Fra gli altri, hanno proposto la classificazione "standard" Gerard Meszaros (nel libro XUnit Test Patterns del 2007), Martin Fowler (Mocks Aren't Stubs) e Robert "Uncle Bob" Martin. La classificazione proposta da questi autori è stata adottata, tra l'altro, da Microsoft.

I principali tipi di test double secondo la classificazione comune sono i seguenti:

Note

  1. 1 2 3 Robert Martin, The Little Mocker
  2. ↑ Gerard Meszaros, xUnit Test Patterns: Refactoring Test Code, Addison-Wesley, 2007, ISBN 978-0-13-149505-0.
  3. ↑ Martin Fowler, Mocks Aren't Stubs, su martinfowler.com, 2007. URL consultato il 23 maggio 2015.
  4. ↑ Mark Seemann, Exploring The Continuum Of Test Doubles, su msdn.microsoft.com, 2007. URL consultato il 23 maggio 2015.

Voci correlate