Solo un FYI: test unitari non equivalgono a TDD. TDD è un processo di cui unit testing è un elemento.
Detto questo, se stavi cercando di implementare test unitari, allora potresti fare una serie di cose:
Tutti i nuovi codici / miglioramenti vengono testati
In questo modo non è necessario passare attraverso e testare l'unità tutto ciò che già esiste, quindi la gobba iniziale dell'implementazione del test unitario è molto più piccola.
Prova singoli dati
Testare qualcosa che può contenere grandi quantità di dati può portare a molti casi limite e lacune nella copertura del test. Invece, considera l'opzione 0, 1, many. Prova un 'batch' con 0 elementi, 1 elemento e molti elementi. Nel caso di 1 elemento, testare le varie permutazioni in cui possono essere presenti i dati per quell'elemento.
Da lì, prova i casi limite (limiti superiori alla dimensione dei singoli elementi e quantità di elementi nel batch). Se si eseguono i test regolarmente e si hanno test di lunga durata (lotti di grandi dimensioni?), La maggior parte dei corridori di test consente la categorizzazione in modo da poter eseguire questi casi di test separatamente (di notte?).
Questo dovrebbe darti una base solida.
Utilizzando i dati effettivi
Inserire dati "reali" precedentemente utilizzati come quelli che stai facendo ora non è una cattiva idea. Basta completarlo con dati di test ben formati in modo da conoscere immediatamente punti specifici di errore. In caso di mancata gestione dei dati effettivi, è possibile ispezionare i risultati del processo batch, produrre un test unitario per replicare l'errore e quindi tornare a red / green / refactor con utili casi di regressione.