Solución:
Cuando creas una instancia de MockRestServiceServer
deberías usar una instancia existente de RestTemplate
que está siendo utilizado por su código de producción. Así que intenta inyectar RestTemplate
en su prueba y utilícelo al invocar MockRestServiceServer.createServer
– no crees nuevo RestTemplate
en tus pruebas.
Parece que está intentando probar el rest-client, el rest-server debería probarse en otro lugar. Estás usando RestTemplate -> Para llamar al servicio. Luego, traté de burlarse de RestTemplate y los resultados de su llamada.
@Mock
RestTemplate restTemplateMock;
y servicio bajo clase de prueba
@InjectMocks
Service service;
Digamos, Service tiene un método para ser probado como
public void filterData() {
MyResponseModel response = restTemplate.getForObject(serviceURL, MyResponseModel.class);
// further processing with response
}
Luego, para probar el método filterData, debe simular la respuesta de la llamada restTemplate como
mockResponseModel = createMockResponse();
Mockito.when(restTemplateMock.getForObject(serviceURL, MyResponseModel.class)).thenReturn(mockResponseModel);
service.filterData();
//Other assert/verify,... go here
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)