cara, esquece reflexão.
Os testes sempre devem primar por simplicidade (ou vc vai acabar tendo de escrever testes para seus testes !!!).
A soluçao é “aumentar” a visibilidade dos private para protected e escrever seus testes no mesmo pacote. Nunca na mesma classe ok? Lembre que na hora da distribuição isso não deverá ser carregado.
Mais alguns detalhes: escrever testes para código legado (já escrito e em produção) é o oposto do recomendado e isso acaba dificultando a escrita destes testes pois vc terá de descobrir todos os contratos na unha.
Sei que na teoria tudo é muito bonitinho - recomendam que vc comece a codificar escrevendo seus testes e só depois disso venha a escrever o código ‘final’. Na prática isso exige uma fase de projeto e no dia a dia tupiniquim isso nem sempre é possível (nossos projetos quase sempre tem a fase de projeto misturada com a fase de implementação)
Procure por TDD na web, Test-Driven-Developement. Aprende aí e depois me conta tá?
O JUnit é uma super ferramenta mas para usá-lo adequadamente é necessário estudar TDD (a teoria). TDD por sua vez é baseada em outras técnicas que nós nem sempre podemos exercitar: lembro apenas da principal (ao meu ver) que é o Refactoring.
Pro teu caso não vai ter outra solução senão levantar todos os contratos pré-estabelicidos (pré e pós condições) na unha lendo o código de ante mão.
Conclusão: o JUnit vai ajudar a te ajudar a melhorar teu código?
(não vou responder - isso dá muito pano pra manga)
Procure tb por:
Prentice Hall 2003, Test-Driven Development A Practical Guide
Woody