我有一种使用RestTemplate
的方法。我使用以下代码进行呼叫:
final ResponseEntity<RESTResponse> responseEntity = restTemplate.exchange(uri,
HttpMethod.POST,
httpEntityWithHeaders,
RESTResponse.class);
httpEntityWithHeads
是HttpEntity<String>
类型。我正在编写测试并尝试模拟RestTemplate,以便当它调用exchange
方法时,它将引发异常。我试图像这样模拟它:
when(restTemplate.exchange(
ArgumentMatchers.contains(randomHost),
ArgumentMatchers.eq(HttpMethod.POST),
ArgumentMatchers.<HttpEntity<List<String>>>any(),
ArgumentMatchers.<ParameterizedTypeReference<List<RESTResponse>>>any())
).thenThrow(new ResourceAccessException("Random exception message."));
但是在运行测试时,它不会引发异常,而只是继续。
有什么建议?
最佳答案
正如您所说的,httpEntityWithHeads
是HttpEntity<String>
类型,因此必须以与HttpEntity<String>
匹配的方式存根。
when(restTemplate.exchange(
ArgumentMatchers.contains(randomHost),
ArgumentMatchers.eq(HttpMethod.POST),
ArgumentMatchers.<HttpEntity<String>>any(),
ArgumentMatchers.<ParameterizedTypeReference<List<RESTResponse>>>any())
).thenThrow(new ResourceAccessException("Random exception message."));