Recentemente sono diventato responsabile di uno strumento legacy che analizza il codice e fornisce un log come output. Come parte della suite JUnit per questo, ci sono ~ 100 test che si basano sulla corrispondenza corretta del log prodotto con un expected log
statico.
Ora questo significa che se il formato del registro cambia, interromperà i test unitari. Ma non posso decidere se questa è una cosa buona o cattiva.
Pro:
- Test unitari che hanno subito un errore fatemi sapere che qualcosa è cambiato
Contro:
- I test devono essere aggiornati ogni volta che lo stile del registro viene modificato
- Un confronto testo diretto è negativo per questo caso, perché il file di registro richiede tempi. Quindi, se una corsa non richiede esattamente il tempo previsto, il test fallisce.
Non posso fare a meno di pensare che questi test non dovrebbero essere eseguiti. Ma allo stesso tempo non voglio lasciare scoperto il processo del file di log.
Qual è la soluzione qui? Migliori test unitari? Nessun test unitario? Come posso farlo senza che i miei test siano così fragili?
Il log viene scritto su un file e non fa parte di alcun framework di registrazione (viene generato un file dopo l'esecuzione dello strumento, che indica all'utente quali file hanno fallito la convalida e perché).