我试着模仿下面两个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));当我尝试使用方法时,默认情况下,它采用第二个模拟方法,并获得类转换异常,其响应类似于帐户详细信息无法转换为UserDetails
发布于 2021-06-30 06:31:56
不是使用
Mockito.<Class<UserDetailsResponse>>any()
Mockito.<Class<AccountDetailsResponse>>any()尝试使用
Mockito.any(UserDetailsResponse.class)
Mockito.any(AccountDetailsResponse.class)发布于 2021-07-05 19:21:07
因此,基本上在模拟multiplerest模板调用的情况下,您可以指定将被调用的特定URI,而不是使用Mockito.any(String.class)。
像这样的东西会起作用的。
Mockito.when(restTemplate
.exchange(Mockito.eq("uri1"), Mockito.eq(HttpMethod.POST), Mockito.any(), Mockito.any(Foo.class))).thenReturn("response-1");然后
Mockito.when(restTemplate
.exchange(Mockito.eq("uri2"), Mockito.eq(HttpMethod.POST), Mockito.any(), Mockito.any(Foo.class))).thenReturn("response-2");https://stackoverflow.com/questions/68183510
复制相似问题