Saltar al contenido

instancia simulada es null después de la anotación @Mock

Necesitamos tu apoyo para compartir nuestras reseñas referente a las ciencias de la computación.

Solución:

Cuando quieras usar el @Mock anotación debe utilizar el MockitoJUnitRunner

@RunWith(MockitoJUnitRunner.class)
public class MockitoTest 

    @Mock
    private IRoutingObjHttpClient routingClientMock;

    @Test
    public void testSendRoutingRequest() throws Exception 
        // ...
    


Vea también este tutorial.

Tiene tres opciones para activar el @Mock anotación: MockitoRule, MockitoJUnitRunner, MockitoAnnotations.initMocks(this). en mi humilde opinión usando el MockitoRule es el mejor, porque aún te permite elegir otro corredor como, por ejemplo Parameterized.

Usar la regla Mockito

public class MockitoTest 

  @Mock
  private IRoutingObjHttpClient routingClientMock;

  @Rule
  public MockitoRule rule = MockitoJUnit.rule();

  @Test
  public void testSendRoutingRequest() throws Exception 
    // ...
  

Usa MockitoJUnitRunner

@RunWith(MockitoJUnitRunner.class)
public class MockitoTest 

  @Mock
  private IRoutingObjHttpClient routingClientMock;

  @Test
  public void testSendRoutingRequest() throws Exception 
    // ...
  

Llame a MockitoAnnotations.initMocks(this) explícitamente.

Esto se puede hacer en qn @Before método, en su propio corredor o en una regla propia.

public class MockitoTest 

  @Mock
  private IRoutingObjHttpClient routingClientMock;

  @Before
  public void createMocks() 
    MockitoAnnotations.initMocks(this);
  

  @Test
  public void testSendRoutingRequest() throws Exception 
    // ...
  

El mismo problema puede ocurrir si está utilizando Junit5 ya que no hay más anotaciones ‘@RunWith’.

En este caso, debe anotar su clase con:

@ExtendWith(MockitoExtension.class)
public class MyTestClass {
...

También debe importar a su dependencia (Maven – pom.xml):


    org.mockito
    mockito-junit-jupiter
    $mockito.version
    test

Tienes la posibilidad compartir este post si te fue útil.

¡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 *