Al escribir el caso de prueba de la unidad para la clase de controlador, me burlé de la llamada de la capa de servicio para devolver el valor deseado, pero en cambio, devuelve nulo.

Clase de prueba

@RunWith(SpringJUnit4ClassRunner.class)
    public class ControllerTest {

        @Mock
        private Service serviceMock;

        @InjectMocks
        private Controller controller;

        private MockMvc mockMvc;

        /**
         * Sets the up.
         *
         * @throws Exception the exception
         */
        @Before
        public void setUp() throws Exception {
            MockitoAnnotations.initMocks(this);
            mockMvc = 
    MockMvcBuilders.standaloneSetup(controller).build();
        }

        @Test
        public void method1() throws Exception {
            when(this.serviceMock.associateTag(any(Request.class), null))
            .thenReturn(Responses.SUCCESS);
    mockMvc.perform(post("/tag/assign").contentType(MediaType.APPLICATION_JSON).content(request))               .andExpect(MockMvcResultMatchers.status().isOk());
        }

Clase de controlador

@PostMapping("/assign")
public RestResponse assignTag(@RequestBody final TagAssociation 
tagAssociation) {
final TagResponses serviceResponse = 
this.service.associateTag(tagOrderAssociation, null);  

ServiceResponse es siempre nulo, esperaba una respuesta de enumeración Responses.

Seguimiento de pila

TestException = org.springframework.web.util.NestedServletException: el procesamiento de la solicitud falló; la excepción anidada es java.lang.NullPointerException

La capa de servicio tiene muchas dependencias conectadas automáticamente. ¿Necesito burlarme de él también? No puedo averiguar la razón exacta del error.

0
Karthik Suresh 9 oct. 2019 a las 11:18

1 respuesta

La mejor respuesta

Cuando está usando comparadores mientras hace stubbing, debe usarlos para todos los parámetros de entrada. Así que intenta:

when(this.serviceMock.associateTag(Mockito.any(Request.class), Mockito.eq(null)))

Si desea leer más, escribí este artículo en Mockito Stubbing < / a>

1
Maciej Kowalski 9 oct. 2019 a las 11:36