Nella ricerca delle best practice di test delle unità per aiutare a mettere insieme le linee guida per la mia organizzazione, mi sono imbattuto nella questione se sia meglio o utile separare i test di prova (classi di test) o mantenere tutti i test per una singola classe in un file.
Fwiw, mi riferisco ai "unit test" nel senso che sono test white-box rivolti a una singola classe, un'asserzione per test, tutte le dipendenze derise, ecc.
Uno scenario di esempio è una classe (chiamala documento) che ha due metodi: CheckIn e Checkout. Ogni metodo implementa varie regole, ecc. Che controllano il loro comportamento. Seguendo la regola one-assertion-per-test, avrò più test per ciascun metodo. Posso posizionare tutti i test in una singola classe DocumentTests
con nomi come CheckInShouldThrowExceptionWhenUserIsUnauthorized
e CheckOutShouldThrowExceptionWhenUserIsUnauthorized
.
Oppure potrei avere due classi di test separate: CheckInShould
e CheckOutShould
. In questo caso, i miei nomi di test verrebbero abbreviati ma sarebbero organizzati in modo che tutti i test per un comportamento specifico (metodo) siano insieme.
Sono sicuro che ci sono pro e contro in entrambi i casi e mi sto chiedendo se qualcuno ha seguito il percorso con più file e, in tal caso, perché? Oppure, se hai optato per l'approccio a singolo file, perché ritieni che sia meglio?