我试着模仿下面两个rest模板
ResponseEntity<UserDetailsResponse> responseEntity = restTemplate.exchange(uri.toString(),
HttpMethod.POST, entity, UserDetailsResponse.class);
ResponseEntity<AccountDetailsResponse> responseEntity = restTemplate.exchange(uri.toString(),
HttpMethod.POST, entity, AccountDetailsResponse.class);
Mockito.when(restTemplate.exchange(Mockito.any(String.class), Mockito.any(HttpMethod.class),
Mockito.<org.springframework.http.HttpEntity<?>>any(), Mockito.<Class<UserDetailsResponse>>any()))
.thenReturn(new ResponseEntity<>(UserMockData.UserDetailsResponse(), HttpStatus.OK));
Mockito.when(restTemplate.exchange(Mockito.any(String.class), Mockito.any(HttpMethod.class),
Mockito.<org.springframework.http.HttpEntity<?>>any(), Mockito.<Class<AccountDetailsResponse>>any()))
.thenReturn(new ResponseEntity<>(AccountMockData.AccountDetailsResponse(), HttpStatus.OK));
当我尝试使用该方法时,默认情况下,它会使用第二个模拟的方法,并获得类转换异常,并返回类似Account details cannot cast to UserDetails的响应
3条答案
按热度按时间zsbz8rwp1#
而不是使用
尝试使用
lnvxswe22#
因此,基本上在模拟multiplerest模板调用的情况下,您可以指定将被调用的特定URI,而不是使用
Mockito.any(String.class)
。像这样的东西会起作用的。
然后呢
efzxgjgh3#