Per rispondere alla domanda specifica, è assolutamente possibile che raggruppare i test in più classi è una buona decisione, evento quando la classe in esame è ben progettata.
Il codice di test unitario è come qualsiasi altro codice: dovrebbe seguire i principi del buon design ( DRY , GRASP , BACIO , SOLID , YAGNI , ecc.). Poiché la logica che costituisce il codice di test è spesso più semplice della logica del dominio, molti dei punti specifici non verranno visualizzati così tanto, ma tienilo a mente mentre scrivi i tuoi test lo stesso.
Ci sono un paio di principi che vengono in mente e che possono essere facilmente applicati quando si pensa alla tua domanda:
La leggibilità
Idealmente, una volta che un test è stato scritto, non devi mai più guardarlo; ma lo stesso si può dire per qualsiasi codice. La realtà è che i requisiti cambiano, quindi ci troviamo a leggere il codice molto più che scriverlo. Anche quando fai del tuo meglio, potresti scoprire che il test che hai scritto non ha affatto verificato ciò che pensavi di aver fatto, a quel punto dovresti tornare indietro e capire cosa c'era che non andava. Trovare quel metodo di prova in una classe di 40-50 metodi di test sarà dura, per non parlare della complicazione di nominare quei metodi in modo che possano essere facilmente differenziati.
Alta coesione
Ogni classe di test (come qualsiasi altra classe) dovrebbe avere un focus chiaro. Se hai un sacco di diversi casi di test per un dato metodo della classe sotto test, come quando un determinato test verifica una singola cosa, metti quei metodi di prova in una classe separata e nominali per riflettere il suo focus.