Saltar al contenido

Probando el método privado usando mockito

Presta atención ya que en este artículo encontrarás la respuesta que buscas.

Solución:

No es posible a través de mockito. De su wiki

¿Por qué Mockito no se burla de los métodos privados?

En primer lugar, no somos dogmáticos acerca de burlarnos de los métodos privados. Simplemente no nos importan los métodos privados porque desde el punto de vista de las pruebas, los métodos privados no existen. Aquí hay un par de razones por las que Mockito no se burla de los métodos privados:

Requiere piratear los cargadores de clases que nunca son a prueba de balas y cambia la API (debe usar un corredor de prueba personalizado, anotar la clase, etc.).

Es muy fácil solucionarlo: simplemente cambie la visibilidad del método de privado a protegido por paquete (o protegido).

Requiere que dedique tiempo a implementarlo y mantenerlo. Y no tiene sentido dado el punto #2 y el hecho de que ya está implementado en otra herramienta (powermock).

Finalmente… Burlarse de los métodos privados es un indicio de que hay algo mal con la comprensión de OO. En OO, desea que los objetos (o roles) colaboren, no los métodos. Olvídate de pascal y el código de procedimiento. Piensa en objetos.

No puede hacer eso con Mockito, pero puede usar Powermock para extender Mockito y simular métodos privados. Powermock es compatible con Mockito. Aquí hay un ejemplo.

Aquí hay un pequeño ejemplo de cómo hacerlo con powermock

public class Hello 
    private Hello obj;
    private Integer method1(Long id) 
        return id + 10;
    
 

Probar Método 1 código de uso:

Hello testObj = new Hello();
Integer result = Whitebox.invokeMethod(testObj, "method1", new Long(10L));

Para establecer un objeto privado objeto utilizar este:

Hello testObj = new Hello();
Hello newObject = new Hello();
Whitebox.setInternalState(testObj, "obj", newObject);

Sección de Reseñas y Valoraciones

Si tienes algún recelo o disposición de aclarar nuestro crónica puedes añadir un comentario y con gusto lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *