Best practice sui test unitari per funzioni consecutive

-1

Diciamo che abbiamo la funzione A e la funzione B che eseguono operazioni consecutive su alcuni dati, con B che non riceve mai i dati prima che A la elabori.

La funzione A esegue controlli esaurienti sui potenziali errori sui dati di input. Per A , è un gioco da ragazzi per scrivere i test di unità corretta. Dovrebbero esserci anche test scritti per B ? Se ha dato dati non validi nei test, si blocca, ma se ci sono controlli in atto c'è una perdita di prestazioni.

    
posta Paul Berg 26.11.2018 - 22:52
fonte

1 risposta

4

Se guardiamo solo a B , allora è questione di contratto per la funzione B . Puoi inserire una precondizione nel contratto per B che i dati di input debbano essere validi (per funzione A ). Quindi non hai bisogno di test unitario B con dati non validi.

If B is given invalid data, it crashes but if there are checks in place there's a performance loss.

Se B non controlla i dati di input, quindi progetta i tuoi sistemi in modo che B non possa essere chiamato con dati non validi. Come implementarlo dipende dalla natura di A , B , i dati. Forse, tieni traccia dello stato e genera un'eccezione [più aggraziata di un arresto anomalo] se qualcosa tenta di chiamare B prima di A .

P.S.
Sembra una domanda di design alle prime armi, piuttosto che una domanda di test unitario. Il desiderio di un codice testabile richiede un design migliore.

    
risposta data 26.11.2018 - 23:24
fonte

Leggi altre domande sui tag