Il test di integrazione utilizza i mock?

16

Sono attualmente in una classe per i test del software in cui per il nostro progetto semestrale, dobbiamo eseguire diversi tipi di test su di esso, come test di unità e test di integrazione. Per i test di integrazione, il professore ha detto di usare mock e librerie di derisione (come EasyMock e Mockito) per i nostri test di integrazione. Sto diventando abbastanza confuso però. I test di integrazione vengono testati al di fuori delle classi, dei moduli, dei servizi, ecc. Perché i mock e gli stub dovrebbero essere appropriati per i test di integrazione se si testano più classi e servizi?

    
posta TheLegendOfCode 18.04.2017 - 15:43
fonte

2 risposte

18

Se hai una funzionalità che tocca diversi componenti esterni, potresti 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. Potresti scrivere tre test di integrazione:

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

Se esegui tutti e tre i test e l'1 e il 3 falliscono, c'è una buona possibilità che ci sia un bug nel codice che funziona con il database, poiché l'unico test che ha superato è quello che utilizza la connettività del database fittizio. / p>

In generale, i test di integrazione non usano i mock, ma a volte ho fatto qualcosa di simile.

    
risposta data 18.04.2017 - 17:02
fonte
3

Non è immediatamente chiaro cosa si intende per Test di integrazione ma l'utilizzo di Fakes /Mocks/Test Doubles è una tecnica valida per creare scenari di test a tutti i livelli all'interno della piramide di test . [1] [2 ] [3]

risposta data 20.07.2018 - 13:42
fonte

Leggi altre domande sui tag