Il test, che tocca i nomi dei file sotto la directory, è una sorta di unittest? [chiuso]

0

Mi è stato detto che l'unittest è veloce e che i test che toccano DB, attraverso la rete e toccano FileSystem non sono untest.

In una delle mie prove, il suo input sono i nomi dei file (quantità circa 300 ~ 400) in una cartella specifica. Sebbene questi input facciano parte del file system, il tempo di esecuzione di questo test è molto veloce.

Devo spostare questo test, che è veloce ma tocca il file system, al test di livello superiore?

    
posta Chen OT 04.06.2014 - 14:13
fonte

1 risposta

3

La velocità non dovrebbe essere l'unica determinazione nel determinare quale tipo di test stai scrivendo / eseguendo. Una query SQL potrebbe richiedere 10 millisecondi, che potrebbero essere considerati veloci. La lettura da un file su un sistema potrebbe richiedere 5 millisecondi, anche questo potrebbe essere considerato veloce.

Ecco alcuni criteri comuni per determinare se qualcosa è un test unitario (questo elenco non è tutto compreso):

  1. Non ha dipendenze esterne (server sql, file server, rete, ...)
  2. Risultati ripetibili, se il codice non cambia, i risultati del test non dovrebbero cambiare
  3. Completamente isolato, un test non dovrebbe dipendere da un altro test da eseguire
  4. Infine, sii veloce

Il test tocca il file system, che non soddisfa due dei suddetti quattro criteri. Se la cartella viene rinominata, un file viene rimosso o la connessione di rete non riesce, il test potrebbe non riuscire. Ciò significa che si tratta di un test di integrazione o di quello che hai scritto nel progetto "fulltest". I test di integrazione sono ancora importanti e sono utili. Se si desidera rendere il test un vero test unitario, seguirei i link @gnat forniti.

    
risposta data 04.06.2014 - 18:32
fonte

Leggi altre domande sui tag