Esto huele como si tuviera un problema incorrecto. Lo que has descrito es similar a crear una "prueba unitaria", lo que me lleva a pensar que las pruebas de tu unidad realmente están probando una unidad después de todo.
Lo cual no es una crítica de lo que estás tratando de hacer: pasar de "donde estamos hoy" a "otro lugar que es mucho mejor" es un movimiento ganador. Sin embargo, es una sugerencia que retroceda un poco para evaluar dónde se encuentra: comprender cómo difiere su situación actual de algún ideal platónico podría ayudar a mostrar nuevas posibilidades.
Aquí hay muchas sugerencias sobre el alcance de sus métodos de ayuda. Otra posibilidad sería revisar la implementación para determinar si hay clases de ayuda al acecho en su implementación actual. Crear una nueva clase y un conjunto de pruebas para ejercitarlo siempre es aceptable.
Tenga en cuenta que este enfoque lo aísla de la refactorización: puede cambiar la implementación sin cambiar su conjunto de pruebas (porque las pruebas de unidad para el objeto auxiliar continúan pasando incluso cuando el objeto auxiliar ya no es parte de su implementación de producción) , y obtienes un empaquetado limpio de la implementación y las pruebas para ello (usecase: decides que bozo-sort es la implementación incorrecta, y ya no se debe usar. Si la implementación bozo-sort está aislada, entonces simplemente la eliminas) y sus pruebas. Pero cuando las pruebas de la implementación de bozo-sort están enredadas con todas las otras pruebas, hay más ideas involucradas).
También puede ser útil revisar por qué tiene pruebas unitarias para su código. Si una de las razones es "para que la refactorización sea segura", entonces no querrá escribir pruebas que lo bloqueen en una implementación.
En lugar de convertirlos en paquetes privados, prefiero proteger los métodos auxiliares y probarlos desde una subclase anónima en la prueba JUnit. – rsp
@rsp: Es una solución fantástica en la que nunca antes había pensado. ¡Debería ser su propia respuesta, así que puedo votarlo! :) –