Recomiendo seguir la estructura de directorios estándar de Apache Software Foundation , que produce esto:
module/
src/
main/
java/
test/
java/
Esto mantiene las pruebas separadas de la fuente, pero al mismo nivel en la estructura del directorio. Si lee detenidamente cómo Apache define su estructura, verá que también ayuda a dividir otras preocupaciones, incluidos recursos, archivos de configuración, otros idiomas, etc.
Esta estructura también permite que las pruebas unitarias prueben paquetes y métodos de nivel protegido de las unidades bajo prueba, asumiendo que coloca sus casos de prueba en el mismo paquete que lo que prueban. Con respecto a las pruebas de métodos privados, no me molestaría. Algo más, ya sea público, empaquetado o protegido, los llama y debería poder obtener una cobertura de prueba completa probando esas cosas.
Por cierto, el enlace anterior es a Maven, la herramienta de compilación estándar de Apache. Todos los proyectos de Java que tienen se ajustan a este estándar, así como todos los proyectos que he encontrado que se construyen con Maven.