Jak mam napisać następujące Mockito Matchery, aby wywołanie nie było niejednoznaczne?Wywołanie zestawu testowego urządzenia Mockito jest niejednoznaczne (trzeba go ustawić, aby nie było niejednoznaczne).
Faktyczne wywołanie funkcji Próbuję mock w moim kodu jest:
//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);
Poniżej znajduje się fragment z mojego przypadku testów jednostkowych. Zawiera następujące fałszywe połączenie emulujące powyższe wywołanie, ale niestety kompilator uważa, że jest niejednoznaczny i nie będzie kompilowany.
//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));
Błąd pojawia się następująco:
The method exchange(String, HttpMethod, HttpEntity<?>, Class<DdsOAuthToken>, Object[]) is ambiguous for the type RestTemplate
To Wiosna RestTemplate wywołanie API. Konkretnie nazywa 2 api stwierdzi niejednoznaczne są 2 następujące połączenia:
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)
Próbuję mock nr 1 powyżej. Ale kompilator Java nie może stwierdzić, czy próbuję wywołać # 1 lub # 2. Dokładnie jak mam napisać Mockito, aby wiedział, że chcę # 1 powyżej, a nie # 2?