I test di integrazione utilizzano simulazioni?


24

Sono attualmente in una classe per i test del software in cui per il nostro progetto del semestre, dobbiamo eseguire più tipi di test su di esso, come test di unità e test di integrazione. Per i test di integrazione, il professore ha dichiarato di utilizzare simulazioni e librerie beffarde (come EasyMock e Mockito) per i nostri test di integrazione. Mi sto confondendo abbastanza però. Il test di integrazione sta testando al di fuori di classi, moduli, servizi, ecc. Perché i mock e gli stub dovrebbero essere appropriati da usare nel test di integrazione se si stanno testando più classi e servizi?


8
I test "Integrazione" e "Unità" non sono universalmente concordati. È meglio chiedere al tuo professore esattamente come hanno definito questi termini.
RubberDuck,

1
Solo un commento Il test di integrazione non riguarda il test delle dipendenze. Si tratta di testare la corretta integrazione del codice con le dipendenze (chiamate, risposta e gestione degli errori, ecc.).
Laiv,

Risposte:


25

Se si dispone di una funzionalità che tocca diversi componenti esterni, è possibile prendere in giro tutti tranne uno per isolare e testare un componente specifico. Ad esempio, supponiamo di avere una funzione che chiama un servizio Web e quindi fa qualcosa con un database basato sui risultati. È possibile scrivere tre test di integrazione:

  1. un test che prende in giro la chiamata al servizio web ma implica una vera connettività al database.
  2. un test che effettua una vera chiamata al servizio web ma utilizza la connettività del database finto.
  3. un test che effettua una vera chiamata al servizio web e comporta una vera connessione al database.

Se esegui tutti e tre i test e 1 e 3 falliscono, ci sono buone probabilità che ci sia un bug nel tuo codice che funziona con il database, poiché l'unico test che è stato superato è stato quello usando la finta connettività del database.

In generale, i test di integrazione non usano simulazioni, ma a volte ho fatto qualcosa del genere.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.