È una buona idea avere dati individuali per test di integrazione?

0

È una buona idea avere set di dati individuali / univoci per ogni test di integrazione o tutti i test dovrebbero riutilizzare gli stessi dati? La mia idea di avere set di dati individuali per ogni test è di avere più controllo per ogni test per rendere più semplice l'aggiornamento dei vecchi test e l'implementazione di nuovi dati. Invece di assicurarmi che i nuovi dati per un nuovo test non interferiscano con i vecchi dati / test, posso semplicemente aggiungere un nuovo set di dati che sarà usato solo dal mio nuovo test. Per me ha senso, ma leggendo i test di integrazione / servizio sembra che la maggior parte (tutti?) Stia utilizzando gli stessi dati per tutti i test.

La mia più grande ragione per avere set di dati univoci per ogni test è perché voglio scrivere test per un'architettura di microservice e assicurarmi di ottenere ID univoci uguali in tutti i DB che si rivelano un po 'disordinati. Se avessi set di dati individuali, potrei seguire AAA:

// Assign
Mock up database, could be CSV files loaded into an in memory-db.

// Act
Make a call to the endpoint I want to test, could be done through for example MSTest, Webtest or POSTMAN

// Assert
Make sure that the response contains the data I wanted.

Nel caso precedente, il CSV sarebbe quindi i set di dati. Quindi ogni test avrebbe ottenuto singoli file CSV che sarebbero stati usati per seminare il DB prima di eseguire il test.

    
posta Oskar 08.02.2018 - 10:13
fonte

2 risposte

1

Dipende completamente dalla situazione:

Se utilizzi set di dati di test univoci:

  • sei meno soggetto ad essere influenzato da precedenti esecuzioni di test, se il sistema testato ha una persistenza.
  • anche tu sei meno soggetto a interferenze se diversi test vengono eseguiti in parallelo
  • è più facile tracciare i dati quando i risultati non sono soddisfacenti
  • è necessario uno sforzo maggiore per generare ciascun set di test, poiché è necessario garantire la coerenza di tutti i dati
  • esegui il test in una bolla e potresti perdere gli errori stupidi, ad esempio alcuni problemi di concorrenza di base (ad esempio quando i dati rimangono bloccati ma non dovrebbero)

Se usi gli stessi dati:

  • i dati di riferimento potrebbero essere alterati in modo sfavorevole da un test precedente.
  • è più difficile quando un test non riesce a scoprire se è dovuto all'esecuzione del test corrente o ad alcuni problemi precedenti
  • dimentica di testare la consistenza della concorrenza
  • è più facile preparare set di test.
risposta data 08.02.2018 - 21:51
fonte
0

Opterei per i singoli dati per test.

Tecnicamente, non è importante. Se si avvia sempre da uno stato predefinito per ciascun test, non ha importanza per il computer.

Tuttavia, nell'improbabile (cough) evento che un test fallisce, i dati univoci rendono so molto più facile da comunicare per gli sviluppatori. È modo più facile ricordare quale fosse il test con "Karl & Karen", quindi il test 54 con Alice. "Karl & Karen" è stata la bella coppia ipotetica con il Golden Retriever in cui Karl non legge mai le e-mail in tempo e Karen glielo ricorda e ora entrambi i loro account hanno lo stesso indirizzo email e dovrebbe funzionare comunque ... Alice # 54? Non ho idea di cosa si trattasse. E 'fallito? Wow. Ho bisogno di leggere la documentazione.

    
risposta data 08.02.2018 - 14:31
fonte

Leggi altre domande sui tag