Cosa sono e perchè utilizzare Stub e Mock nei test di unità

Cosa sono e perchè utilizzare Stub e Mock nei test di unità

Stub e Mock nei test software

In informatica, JUnit è il framework più popolare per testare il codice Java. Il test di unità (o unit test) viene utilizzato per testare una singola unità di programmazione, ad esempio una classe o un metodo, in effetti molti sviluppatori Java scrivono test unitari per metodo. Gli oggetti Stub e Mock sono due concetti che aiutano durante i test unitari, non sono oggetti reali, ma agiscono come oggetti reali a scopo di test unitari. Uno degli approcci di test comuni per testare un’unità o un modulo, che dipende da un’altra unità/modulo, è usare proprio gli Stub e gli oggetti Mock in quanto aiutano a ridurre la complessità, che potrebbe essere necessaria per creare un oggetto dipendente reale.

Più in dettaglio, sia gli Stub che i Mock sono oggetti fittizi, ma più precisamente uno Stub è un oggetto che simula oggetti reali con il numero minimo di metodi richiesti per un test. Ad esempio, se la classe dipende dal database, è possibile utilizzare HashMap per simulare il funzionamento del database.

L’oggetto Stub è principalmente creato dagli sviluppatori e lì il metodo è implementato in modo predeterminato, restituiscono principalmente valori codificati. Forniscono inoltre metodi per verificare i metodi per accedere allo stato interno dello stub, che è necessario per verificare lo stato interno dell’oggetto.

Per quanto riguarda, gli oggetti Mock questi vengono in genere creati da una libreria open source e un framework simulato come Mockito, jMock ed EasyMock. Questa libreria aiuta a creare, verificare e stub deridere. L’oggetto finto ha conoscenza di come i suoi metodi vengono eseguiti in un unit test e verifica se i metodi vengono effettivamente chiamati rispetto a quelli previsti. A parte la prima differenza che gli oggetti simulati sono generalmente creati da un framework simulato, un’altra differenza chiave tra gli oggetti Stub e Mock è il modo in cui vengono utilizzati.

Infine, l’oggetto stub viene solitamente utilizzato per la verifica dello stato, mentre l’oggetto simulato viene utilizzato principalmente per la verifica del comportamento. Come sviluppatore, è possibile sfruttare queste potenti tecniche di test per testare il modulo in modo efficiente.

Cosa sono e perchè utilizzare Stub e Mock nei test di unità

Ciclo di vita di Stub e Mock

Nello sviluppo di testing software vale un principio fondamentale ovvero che deve esserci solo una cosa per test, ci possono essere diversi stub in un test, ma generalmente c’è solo un mock.

Infine, descriviamo il ciclo di vita dello stub e del mock.

Ciclo di vita con lo stub:

  1. Installazione: Prepara l’oggetto che viene testato e i suoi collaboratori stub.
  2. Esercizio: prova la funzionalità.
  3. Verifica stato: utilizzare gli assert per verificare lo stato dell’oggetto.
  4. Smontaggio: pulizia delle risorse.

Ciclo di vita con il mock:

  1. Dati di installazione: preparare l’oggetto in fase di test.
  2. Aspettative di installazione: Prepara le aspettative in mock che viene utilizzato dall’oggetto primario.
  3. Esercizio: prova la funzionalità.
  4. Verifica aspettative: verifica che i metodi corretti siano stati richiamati in modo fittizio.
  5. Verifica stato: utilizzare gli assert per verificare lo stato dell’oggetto.
  6. Smontaggio: pulizia delle risorse.

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 *