首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模拟多个Resttemplate

模拟多个Resttemplate
EN

Stack Overflow用户
提问于 2021-06-30 01:52:50
回答 2查看 119关注 0票数 0

我试着模仿下面两个rest模板

代码语言:javascript
运行
复制
    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

EN

回答 2

Stack Overflow用户

发布于 2021-06-30 06:31:56

不是使用

代码语言:javascript
运行
复制
Mockito.<Class<UserDetailsResponse>>any()
Mockito.<Class<AccountDetailsResponse>>any()

尝试使用

代码语言:javascript
运行
复制
Mockito.any(UserDetailsResponse.class)
Mockito.any(AccountDetailsResponse.class)
票数 0
EN

Stack Overflow用户

发布于 2021-07-05 19:21:07

因此,基本上在模拟multiplerest模板调用的情况下,您可以指定将被调用的特定URI,而不是使用Mockito.any(String.class)

像这样的东西会起作用的。

代码语言:javascript
运行
复制
Mockito.when(restTemplate
  .exchange(Mockito.eq("uri1"), Mockito.eq(HttpMethod.POST), Mockito.any(), Mockito.any(Foo.class))).thenReturn("response-1");

然后

代码语言:javascript
运行
复制
Mockito.when(restTemplate
  .exchange(Mockito.eq("uri2"), Mockito.eq(HttpMethod.POST), Mockito.any(), Mockito.any(Foo.class))).thenReturn("response-2");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68183510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档