Private klasser bliver på en eller anden måde brugt internt i klassen, så det er bare at teste den indirekte. fx hvis en constructor i en klasse bruger en privat funktion kan den testes ved at oprette en instans af klassen!
Hvis alle offentligt tilgængelige metoder virker som de skal, betyder det jo indirekte også, at alle de private også virker som de skal. Så du tester dem altså kun indirekte.
Hvis de er meget kritiske, kan du evt overveje at give metoden package access (normal standard er at lægge testklasser i de samme pakker som den kode de tester, så de også har adgang til f.eks. protected metoder). Det er dog en lidt "grim" løsning, som kun bør vælges, hvis det er strengt nødvendigt.
Den kan jeg vel ikke bare teste?.... I givet fald hvordan gør jeg?....
getDownload() bruger 5 forskellige private metoder, som jeg gerne ville teste adskilt.
Man kan måske argumentere for at getDownload() ikke skal være private men protected, da det jo kan tænkes at klasser der extender denne klasse har brug for at få adgang til de forskellige private metoder. Måske medfører arbejdet med JUnit at jeg prøver at strukturere koden lidt bedre, og tænker mere over hvilken accessgrad mine metoder skal have.
Tak for svarene. Conrads løsning tror jeg er den bedste, jeg skal dog bruge lidt tid på at sætte mig ind i den. Kildekoden løsningen præsenterer, er mig en smule langhåret.
prom
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.