博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot~openfeign从JSON文件读取数据
阅读量:7037 次
发布时间:2019-06-28

本文共 1457 字,大约阅读时间需要 4 分钟。

对openfeign不清楚的同学可以先看我这篇文章:

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

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

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

/**   * 将json转换为对象.   *   * @param path 文件路径   */  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); } } /** * 将json数组转换为对象列表. * * @param path 文件路径 */ 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环境中,在生产环境里,将使用真正的服务。

感谢各位阅读!

转载地址:http://ldnal.baihongyu.com/

你可能感兴趣的文章
Fedora设置DVD为yum源
查看>>
VirtualBox虚拟机网络连接设置的四种方式
查看>>
PXE配置安装CentOS 6.5
查看>>
关于php网页内容更改但刷新不起作用的问题
查看>>
SDWebImage在xcode6.1的iOS8环境下报错
查看>>
Iptables—包过滤(网络层)防火墙
查看>>
大龄程序员,关于编程与管理的思考
查看>>
前端进阶 -js数据结构类型扩展:immutable-js(10)
查看>>
centos5.10NFS服务的配置
查看>>
有关二分查找的边界思考
查看>>
phpvirtualbox访问Ubuntu虚拟机134-配置详情
查看>>
Java 单元测试利器之 Junit
查看>>
我的友情链接
查看>>
媒体关注OSV智能桌面虚拟化平台
查看>>
安装VMware Workstation提示the msi failed的解决办法
查看>>
MongoDB安装配置
查看>>
使程序在Linux下后台运行
查看>>
webpack构建h5plus多页面移动app
查看>>
Varnish缓存更新策略调试过程
查看>>
unix bsd linux gun 粗略解释
查看>>