es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se llama a un método de un método de una clase simulada?

¿Cómo llamar a un método de un método de una clase simulada?

java
when(mockedClass.method1().method2()).thenReturn(x);

Esta línea de código está lanzando

org.mockito.exceptions.misusing.MissingMethodInvocationException

No puedo llamar al segundo método después de simular la clase.
He intentado doReturn, spy pero no funcionó.

¡Se agradece cualquier solución!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Una solución es crear un objeto falso (mock object) para el valor de retorno de method1() y utilizar ese objeto para simular (mock) method2(), así:

    MockedReturnType mockedReturnType = Mockito.mock(MockedReturnType.class);
    when(mockedClass.method1()).thenReturn(mockedReturnType);
    when(mockedReturnType.method2()).thenReturn(x);
    

    De esta manera, se puede simular el valor de retorno de method1() y luego simular la llamada a method2() sobre el objeto falso (mock object) de retorno.

    Nota: MockedReturnType debe ser reemplazado por el tipo devuelto por method1().

Comments are closed.