Come affrontare i lunghi test del sistema di processo?

0

Il mio servizio ha processi a lunga esecuzione. Ad esempio: l'utente può registrarsi, ma se l'e-mail non viene verificata dopo 7 giorni, inviamo un'email di promemoria.

Ho bisogno del mio test di sistema per coprire anche questo scenario.

Attualmente, manipolo i dati nel DB in modo che il sistema pensi che l'utente abbia firmato una settimana fa.

Ma questo rende i miei test strettamente accoppiati con il modello, il codice stesso e gli sviluppatori.

C'è un modo migliore per gestirlo?

    
posta guy mograbi 14.08.2018 - 04:24
fonte

2 risposte

2

In primo luogo, un valore temporale come "7 giorni" dovrebbe essere un parametro di configurazione del processo, non qualcosa di hardcoded o qualcosa che il processo può recuperare esclusivamente dal database. Quando implementi il sistema in questo modo, il tuo test di sistema può sostituire "7 giorni" con qualcosa come "7 secondi", che dovrebbe risolvere il tuo problema.

L'altro approccio che vedo è di rendere l'orologio un'astrazione che può essere passata come interfaccia nel processo, in modo da poter deridere l'orologio "reale" con una versione derisoria a scopo di test.

    
risposta data 14.08.2018 - 08:28
fonte
1

Time skipping might affect other system tests

Questo esclude molti strumenti, ma timecop potrebbe aiutarti accelerando il tempo senza saltare (disclaimer - non ho mai usato io stesso)

    
risposta data 28.08.2018 - 11:25
fonte

Leggi altre domande sui tag