Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

833
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!