Sto provando lo sviluppo guidato da test per la prima volta (test di primo sviluppo, in realtà). Ho annotato le mie specifiche, poi ho alternato i test di scrittura, poi il codice, scritto il codice per passare l'ultimo test e non rompere i test precedenti. Il mio codice sta eseguendo la convalida dell'input su un percorso file fornito dall'utente:
- Il percorso esiste ed è un file?
- Il file è in un formato specifico?
- Il file contiene un campo specifico?
- Il file ha una funzione in cui il campo è impostato su un determinato valore?
Questo mi ha portato a scrivere funzioni che restituiscono True / False per ogni condizione e test per gli input che portano a output True e False. Tuttavia, c'è qualche duplicazione tra le funzioni (caricamento del file, ecc.) E potrei scrivere una funzione più snella che combina tutti i controlli. Questo è importante nel mio caso perché i file possono essere grandi.
Dove ho riscontrato problemi:
- Riforizzo anche i test?
- Se ho una singola funzione più grande che emette True / False in base alle sottoschede, come posso testare ancora per le singole condizioni specifiche?
- Dovrei invece sollevare eccezioni e controllare che vengano sollevate le eccezioni corrette?