Как написать следующие Mockito Matchers, чтобы вызов не был двусмысленным?Mockito Unit Test Case Call is Ambiguous (нужно заставить его не быть двусмысленным)
Фактический вызов функции Я пытаюсь издеваться в моем коде:
//Variables
String url = http://theServer:8080/oath2-v1/token;
HttpEntity<String> request = new HttpEntity<String>("name=value",headers);
//Method call I am trying to mock using Mockito
response=cmsRestTemplate.exchange(url, HttpMethod.POST, request, DdsOAuthToken.class);
Ниже приводится отрывок из моего модульного тестирования случае. Он содержит следующий издевавшийся вызов, эмулирующий вышеуказанный вызов, но, к сожалению, компилятор считает его неоднозначным и не компилируется.
//From the Unit Test...
when(restTemplate.exchange(
Matchers.anyString(),
Matchers.any(HttpMethod.class),
Matchers.any(HttpEntity.class),
Matchers.<Class<DdsOAuthToken>>any(),
Matchers.anyVararg()).thenReturn(response));
Я получаю ошибку следующим образом:
The method exchange(String, HttpMethod, HttpEntity<?>, Class<DdsOAuthToken>, Object[]) is ambiguous for the type RestTemplate
Это апи вызов Spring RestTemplate. В частности, 2 апи называет это находит неоднозначные являются 2 следующих вызовов:
1. exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables)
2. exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Object... uriVariables)
Я пытаюсь издеваться # 1 выше. Но компилятор Java не может определить, пытаюсь ли я позвонить №1 или №2. Точно как я должен писать Mockito, чтобы он знал, что я хочу # 1 выше, а не # 2?