我有一个返回ResponseEntity<?>
的方法。我想在Mockito.when().thenReturn();
中处理该退货
我收到以下错误。
the method thenreturn(responseentity<capture#6-of ?>) in the type ongoingstubbing<responseentity<capture#6-of ?>> is not applicable for the arguments (responseentity<capture#7-of ?>)
这是我的代码:
@Mock
EmisionesApi emisionesApi;
@InjectMocks
EmisionesControllerImpl emisionesControllerImpl = new EmisionesControllerImpl();
@BeforeClass
public static void setUp() {
}
@Test
public void testBuscarModalidades() throws Exception {
try {
final String compania = "11";
final String producto = "10";
ObjectMapper mapper = new ObjectMapper();
List<ProductoComercial> productoComercials = new ArrayList<ProductoComercial>();
ProductoComercial pc = new ProductoComercial();
productoComercials.add(pc);
ResponseEntity<List<ProductoComercial>> salida = new ResponseEntity<List<ProductoComercial>>(productoComercials, HttpStatus.OK);
ProductosComercialesDto productosComercialesDto = new ProductosComercialesDto();
String jsonBody = mapper.writeValueAsString(productosComercialesDto);
String urlBackend = PowerMockito.mock(String.class);
Whitebox.setInternalState(emisionesControllerImpl, "urlBackend", urlBackend);
ResponseEntity<String> response = new ResponseEntity<String>(jsonBody, HttpStatus.OK);
RestTemplateSSO rt = PowerMockito.mock(RestTemplateSSO.class);
Mockito.doNothing().when(rt).setErrorHandler(Mockito.any(ResponseErrorHandler.class));
Whitebox.setInternalState(emisionesControllerImpl, "rt", rt);
Mockito.when(rt.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), Matchers.<HttpEntity<?>> any(), Matchers.<Class<String>> any())).thenReturn(response);
Mockito.doReturn(salida).when(emisionesApi).getModalidades(Mockito.anyString(), Mockito.anyString());
Mockito.when(emisionesApi.getModalidades(Mockito.anyString(), Mockito.anyString())).thenReturn(salida);
ResponseEntity<List<ProductoComercial>> sal = (ResponseEntity<List<ProductoComercial>>) emisionesControllerImpl.getModalidades(compania, producto);
Assert.assertTrue(sal.getBody().size() == 1);
Assert.assertTrue(sal.getStatusCode() == salida.getStatusCode());
} catch (Exception e) {
e.printStackTrace();
}
}
我要测试的方法是:
public ResponseEntity<?> getModalidades
根据statusCode,每次返回的结果都与此方法不同。
我尝试使用doReturn,但被忽略了。我不知道为什么。