Para probar un método protegido usando junit y mockito, en la clase de prueba (la clase que se usa para probar el método), crea una «clase hija» que extienda la clase protagonista y simplemente sobrescriba el método protagonista para hacerlo público y así dar acceso al método a la clase de prueba, y luego escribe pruebas contra esta clase hija.
Para desglosar esto, la declaración del problema es que la clase de prueba no tiene acceso al método protegido y, por lo tanto, el desarrollador no puede escribir pruebas para validar el método protegido.
La solución menos óptima es modificar el modificador de acceso a público para dar acceso a la clase de prueba a este método. Esto es un compromiso ENORME con el ideal de encapsulación y el principio de que un método debe tener la MENOR visibilidad que necesite.
La solución aquí es proporcionar una clase sustituta que extienda la clase protagonista y cuyo único propósito sea anular el método en cuestión y hacerlo público. Una vez hecho esto, la clase de prueba trata esta clase como la clase protagonista y escribe aserciones sobre ella.