Nel ricercare le migliori pratiche di unit test per aiutare a mettere insieme le linee guida per la mia organizzazione, ho incontrato la questione se sia meglio o utile separare i dispositivi di test (classi di test) o mantenere tutti i test per una singola classe in un file.
A proposito, mi riferisco ai "test unitari" nel senso puro che si tratta di test in white box rivolti a una singola classe, un'asserzione per test, tutte le dipendenze derise, ecc.
Uno scenario di esempio è una classe (chiamalo Documento) che ha due metodi: CheckIn e CheckOut. Ogni metodo implementa varie regole, ecc. Che controllano il loro comportamento. Seguendo la regola dell'asserzione per test, avrò più test per ciascun metodo. Posso mettere tutti i test in una singola DocumentTestsclasse con nomi come CheckInShouldThrowExceptionWhenUserIsUnauthorizede CheckOutShouldThrowExceptionWhenUserIsUnauthorized.
Oppure, potrei avere due classi di test separate: CheckInShoulde CheckOutShould. In questo caso, i miei nomi dei test verrebbero abbreviati ma sarebbero organizzati in modo che tutti i test per un comportamento specifico (metodo) siano uniti.
Sono sicuro che ci sono pro e contro di entrambi gli approcci e mi chiedo se qualcuno ha percorso il percorso con più file e, in caso affermativo, perché? Oppure, se hai optato per l'approccio a file singolo, perché ritieni che sia migliore?
testResponseContainsSuccessTrue() , testResponseContainsMyData()e testResponseStatusCodeIsOk(). Li avrebbe in un singolo testResponse()che ha tre afferma: assertEquals(200, response.status), assertEquals({"data": "mydata"}, response.data)eassertEquals(true, response.success)