Zpo-3-wyk-Slajd22
Testowanie metod niepublicznych
Często pojawiające się pytanie dotyczy testowania metod niepublicznych. Jedna z odpowiedzi mówi, że testować należy tylko metody publiczne, ponieważ jedynie one uczestniczą w interakcji z innymi obiektami, zatem stanowią one jedyny dostępny na zewnątrz interfejs klasy. Inna szkoła dowodzi, że znacznie bardziej uzasadnione jest testowanie wszystkich metod o nietrywialnym zachowaniu, bez względu na zakres ich widoczności. Wówczas czasami konieczne staje się przetestowanie także metod prywatnych i chronionych.
W Javie jest to możliwe jedynie poprzez mechanizm Java Reflection. Rozwiązanie to na potrzeby testowania zostało zaimplementowane w dodatku do JUnita pod nazwą JUnitX w klasie PrivateAccessor. Pozwala ona zmienić poziom dostępu do dowolnej składowej (pola lub metody) i w razie potrzeby odwołać się do niej.