Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

826
Vistas
Saltarse la ejecución de un método usando Mockito

Estoy usando Mockito para pruebas unitarias y quiero omitir la ejecución de un método.

Me referí a este ticket Saltar ejecución de una línea usando Mockito . Aquí, asumo que los métodos doSomeTask() y createLink() están en diferentes clases. Pero en mi caso, ambos métodos están en la misma clase (ActualClass.java).

 //Actual Class public class ActualClass{ //The method being tested public void method(){ //some business logic validate(param1, param2); //some business logic } public void validate(arg1, arg2){ //do something } } //Test class public class ActualClassTest{ @InjectMocks private ActualClass actualClassMock; @Test public void test_method(){ ActualClass actualClass = new ActualClass(); ActualClass spyActualClass = Mockito.spy(actualClass); // validate method creates a null pointer exception, due to some real time data fetch from elastic doNothing().when(spyActualClass).validate(Mockito.any(), Mockito.any()); actualClassMock.method(); } }

Dado que surge una excepción de puntero nulo cuando se ejecuta el método de validación, estoy tratando de omitir la llamada al método espiando el objeto ActualClass como se indica en el ticket que mencioné anteriormente. Aún así, el tema no se resuelve. El método de validación se ejecuta y crea una excepción de puntero nulo debido a que no se puede cubrir el método de prueba real.

Entonces, ¿cómo omito la ejecución del método de validación () que está dentro de la misma clase?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En caso de dependencias externas, las siguientes dos anotaciones se pueden usar a la vez. @InjectMocks @Spy Esto realmente espiará el método original. Si el método que desea omitir existe en algún otro archivo, anote el objeto de la clase con @Spy en el que existe el método que se omitirá.

over 4 years ago · Santiago Trujillo Denunciar

0

Siempre debe usar su clase espía cuando llame al method() .

 @Test public void test_method(){ ActualClass spyActualClass = Mockito.spy(actualClassMock); doNothing().when(spyActualClass).validate(Mockito.any(), Mockito.any()); spyActualClass.method(); }

En la práctica, en lugar de

 actualClassMock.method();

debes usar

 spyActualClass.method();
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda