Modifica dei test e refactoring del codice duplicato nello sviluppo basato su test

3

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?
posta Benjamin 11.08.2016 - 18:00
fonte

1 risposta

1

Man mano che sviluppi il tuo corpo di test, insieme al software per svolgere le funzioni, dovrai assolutamente rifattorizzare sia i test che il software in fase di sviluppo.

Hai delineato un numero di percorsi utili da seguire per l'aggregazione delle funzionalità, ma non possiamo realmente determinare quali percorsi seguire. Se crei i test con una chiara comprensione del contesto e della direzione, il percorso verrà spesso visualizzato prima di procedere. Parte di ciò che stai facendo nei tuoi primi test sta esplorando lo spazio della soluzione; quando trovi le posizioni in quello spazio che ti attirano, tenderai a convergere lì, buttando via o riducendo al minimo i test in altre aree.

Per quanto riguarda la domanda sullo stato Vero / Falso, potresti prendere in considerazione la dicotomia query-comando. Se il comando è di analizzare un file, è ancora possibile interrogare l'oggetto per determinare le risposte alle singole domande. Le eccezioni dovrebbero essere riservate per situazioni eccezionali e per situazioni in cui non si desidera che il sistema di dati venga trasferito nel sistema in cui è possibile trovare un gestore appropriato.

    
risposta data 11.08.2016 - 18:52
fonte

Leggi altre domande sui tag