Sto cercando di utilizzare JUnit per testare una classe ( FooWriter
) responsabile della scrittura dei dati della mia applicazione su disco utilizzando un formato di file personalizzato. Il set di dati che sto scrivendo è potenzialmente molto grande, e voglio almeno essere in grado di testare cose semplici, come se il numero previsto di righe fosse scritto o meno.
Il mio problema è che non sono sicuro di quale sia il modo migliore per impostare il test con dati di test realistici. Sembra che le mie opzioni siano:
- Leggi i dati del test dal disco e quindi utilizza tali dati per il% test di prova
FooWriter
- Scrivi un dispositivo di testo codificato per il caso di test
FooWriter
da utilizzare
(1) sembra una cattiva idea, perché il caso di test FooWriter
non sarebbe più isolato da altre operazioni complesse e fragili. (2) sembra una cattiva idea perché risulterebbe in circa mille righe di codice per comporre la struttura dati, sulla falsariga di:
foo.addBar(new Bar("bof", "bam"));
foo.addBar(new Bar("baz", "boom"));
Non solo è noioso e soggetto a errori, se dovessi apportare una modifica nel modo in cui i dati sono costruiti, il test potrebbe quindi fallire indipendentemente dal fatto che l'applicazione stessa sia effettivamente interrotta.
In casi come questo in cui non vedo buone opzioni, ho scoperto che di solito è perché sono stupido. Dov'è lo stupido?