Ho una classe che incapsula i risultati di una misurazione scientifica. Sto costruendo test unitari sin dall'inizio, ma non ho molta esperienza con i test unitari e non sono sicuro di quali comportamenti dovrei testare e come.
La mia classe fa tre tipi di cose:
- Legge i dati di misurazione da un file (o una stringa) nelle sue variabili di istanza
- Scrive i suoi dati di misurazione su un file o una stringa
- Esegue calcoli sui suoi dati (ad esempio ottenendo la media di un insieme di numeri)
Il mio approccio al momento è quello di includere un file di dati di esempio noto nella mia directory test
. Un test legge i dati dal file, li passa alla mia classe e si assicura che soddisfi alcuni controlli di integrità di base. Un altro test passa il nomefile del file alla mia classe, consente alla classe di leggerlo e esegue gli stessi test. Il resto dei test legge i dati dal file, lo passa alla mia classe e controlla che i risultati dei metodi di elaborazione dati siano corretti, dato quello che so di quel set di dati.
Questo sembra piuttosto intricato, però. I test che verificano (3) presuppongono implicitamente che i comportamenti di (1) siano corretti, dal momento che sono le funzioni in (1) che vengono utilizzate per popolare la classe in primo luogo. E i test di (1) potrebbero beneficiare degli ampi controlli effettuati dai test per (3). Sto strutturando male i miei test unitari o è solo un risultato naturale del fatto che ho bisogno di utilizzare un set di dati specifico nei miei test?