Test dell'unità per il mapping da int a stringa

0

Come dovrebbe un'unità testare una funzione che (tra le altre cose) mappa un intero di una stringa?

Se la funzione doveva mappare 0 => string0, 1 => string1, 2 => string2 , dovrei testare per ciascuno di 0 , 1 e 2 ? O dovrei semplicemente provare uno di questi casi?

    
posta user184633 24.06.2015 - 02:38
fonte

4 risposte

6

Suggerisco di avere un test unitario per ogni percorso linearmente indipendente attraverso la funzione. In pratica, questo significa un test, più un test aggiuntivo per ogni ramo.

Per saperne di più, ti suggerisco di leggere la complessità ciclomatica ( link )

    
risposta data 24.06.2015 - 03:54
fonte
3

Oltre alla risposta sopra, ti consigliamo anche di testare i casi limite - ad es. -1, 0 e quindi un numero elevato. Puoi anche verificare che il passaggio di qualcosa di diverso da un numero intero si comporti nel modo in cui deve comportarsi.

    
risposta data 24.06.2015 - 08:11
fonte
1

Se la funzione fa diverse cose (e la descrizione "... una funzione che ( tra le altre cose ) mappa un intero di una stringa" indica che il tuo fa), dovresti probabilmente dividerlo in diverse funzioni e testarle separatamente. Quindi, come suggerito da Daniel T., assicurati di testare ogni ramo attraverso la / le funzione / i.

    
risposta data 24.06.2015 - 22:25
fonte
0

Che ne dici di usare enum (da mapper int a string) e non hai bisogno di testare nulla.

enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

Ora supponiamo che il tuo mapper sia utilizzato da un metodo che restituisce risultati diversi in base al programma di mappatura. Ecco come lo testerei.

  1. Ottieni automaticamente tutti i valori nel mapper.
  2. Scorri ciascuna e chiama il tuo metodo con quel valore.
  3. asserisci dopo ogni risposta.

L'esempio precedente andrebbe bene se stai caricando qualcosa dal filesystem che corrisponde ai tuoi valori enum o qualcosa di simile. La tua situazione potrebbe variare.

    
risposta data 24.06.2015 - 22:30
fonte

Leggi altre domande sui tag