Saltar al contenido

¿Cómo AutoWire spring beans cuando se usa Mockito y Junit?

Esta inquietud se puede tratar de variadas maneras, pero en este caso te dejamos la que para nosotros es la resolución más completa.

Solución:

No te estás burlando de nada en tu código. @InjectMocks establece una clase donde se inyectará un simulacro.

Su código debería verse así

public class PersonServiceTest {

    @InjectMocks
    PersonService personService;

    @Mock
    MockedClass myMock;

    @Before
    public void setUp() throws Exception 
        MockitoAnnotations.initMocks(this);
        Mockito.doReturn("Whatever you want returned").when(myMock).mockMethod;


    

    @Test()
      public void testPerson() 

         assertThat(personService.method, "what you expect");
      

Otra solución es usar @ContextConfiguration anotación con static clase de configuración interna así:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
public class PersonServiceTest 
    @Autowired
    PersonService personService;

    @Before
    public void setUp() throws Exception 
        when(personService.mockedMethod()).thenReturn("something to return");
    

    @Test
    public void testPerson() 
         assertThat(personService.method(), "what you expect");
    

    @Configuration
    static class ContextConfiguration 
        @Bean
        public PersonService personService() 
            return mock(PersonService.class);
        
    

De todos modos, debe burlarse de algo que el método que desea probar usa dentro para obtener el comportamiento deseado de ese método. No tiene sentido burlarse del servicio que está probando.

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