java - Mockito模拟 restTemplate.postForEntity

我尝试模拟restTemplate.postForEntity方法,

实际的方法调用为:


URI myUri = new URI(myString);
HttpEntity<String> myEntity ...


String myResponse = restTemplate.postForEntity(myUri, myEntity, String.class);

在测试类中有:


Mockito.when(restTemplate.postForEntity(any(URI.class), any(HttpEntity.class), eq(String.class))).thenReturn(response);

这不能工作;我尝试了其他几种方法,但是都没有成功,

时间:

必须确保在测试中将restTemplate初始化为mock


 RestTemplate restTemplate = mock(RestTemplate.class);

这个(mocked)rest模板是实际方法调用中使用的模板,可以在对象上使用setRestTemplate()方法,并且可以使用该方法设置restTemplate:


 myTestObject.setRestTemplate(restTemplate);

postForEntity方法,你可以使用RestOperations而不是RestTemplate来解决这个问题。

...