栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot openfeign从JSON文件读取数据问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot openfeign从JSON文件读取数据问题

对openfeign不清楚的同学可以参考下我的这篇文章:springboot~openfeign从此和httpClient说再见

对于openfeign来说,帮助我们解决了服务端调用服务端的问题,你不需要关心服务端的URI,只需要知道它在eureka里的服务名称即可,同时你与服务端确定了服务方法的参数和返回值之后,我们可以在单元测试时mock这些服务端方法即可,真正做到了单元测试,而不需要与外界资源进行交互。

今天主要说一下在openfeign里读取JSON文件的问题,我们将测试所需要的数据存储到文件里,在修改时关注点比较单纯。

JSON帮助类,主要使用了objectMapper这个对象


 public  T fromJson(String path, Class cls) {
 try {
  return objectMapper.readValue(this.fromResource(path, Charsets.UTF_8), cls);
 } catch (Exception e) {
  throw new IllegalStateException("读取json失败:" + path, e);
 }
 }
 
 public  List listFromJson(String path, TypeReference typeReference) {
 try {
  return objectMapper.readValue(fromResource(path, Charsets.UTF_8), typeReference);
 } catch (Exception e) {
  throw new IllegalStateException("读取json失败:" + path, e);
 }
 }

在Mock类型中,可以使用这个方法读JSON文件的内容

@Configuration
@Profile("integTest")
public class ServiceClientMock {
 @Bean
 public ServiceClient registerServiceClient() {
 AccountClient client = mock(AccountClient.class);
 when(client.del(
  anyString(),
  anyString(),
  anyString(),
  anyMap())).thenReturn(fromJson("order/orders.json", Map.class));
 }
}

上面代码主要在模拟了ServiceClient对象里的del方法,有三个字符型输入参数,返回值从JSON文件读取,在单元测试里,直接注入的是ServiceClientMock对象,我们

可以从@Profile注解里看到,它运行在integTest环境中,在生产环境里,将使用真正的服务。

总结

以上所述是小编给大家介绍的springboot openfeign从JSON文件读取数据问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/140706.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号