Caratteristiche e Differenza tra Stub e Mock

Caratteristiche e Differenza tra Stub e Mock

Stub

Un metodo stub o semplicemente stub nello sviluppo del software è un pezzo di codice usato per sostituire altre funzionalità di programmazione. Uno stub può simulare il comportamento del codice esistente (come una procedura su una macchina remota, tali metodi sono spesso chiamati simulazioni) o può essere un sostituto temporaneo del codice ancora da sviluppare. Gli stub sono quindi più utili nel porting, nell’elaborazione distribuita, nonché nello sviluppo e nel test generale del software (testing software).

Caratteristiche e Differenza tra Stub e Mock

Mock

Nella programmazione orientata agli oggetti, i mock object (oggetti simulati o oggetti mock) sono degli oggetti simulati che riproducono il comportamento degli oggetti reali in modo controllato. Un programmatore crea un oggetto mock per testare il comportamento di altri oggetti, reali, ma legati ad un oggetto inaccessibile o non implementato che verrà sostituito appunto da un mock.

Nei test di unità (unit test), i mock possono simulare il comportamento degli oggetti reali e complessi e sono utili quando gli oggetti correlati sono impossibili da utilizzare. A tal proposito abbiamo i seguenti casi:

  1. Rimpiazzare un comportamento non deterministico (l’ora o la temperatura ambiente).
  2. Se l’oggetto ha degli stati difficili da riprodurre(un errore di sistema ad esempio).
  3. Se l’inizializzazione dell’oggetto è lunga (ad esempio la creazione di un database).
  4. Se l’oggetto non esiste o se il suo comportamento può ancora cambiare.
  5. Se è necessario d’includere degli attributi e dei metodi unicamente a fini di test.

Differenza tra stub e mock

La differenza principale tra stub e mock è data dai seguenti punti:

  1. Lo Stub è un oggetto che contiene dati predefiniti e lo utilizza per rispondere alle chiamate durante i test software. Ad esempio: un oggetto che deve prelevare alcuni dati dal database per rispondere a una chiamata di metodo.
  2. Il mock è un oggetto che registra le chiamate ricevute. Nell’ambito del testing software, possiamo verificare su Mock che sono state eseguite tutte le azioni previste. Ad esempio: una funzionalità che chiama il servizio di invio email.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *