feign指定json返回html,springboot openfeign从JSON文件读取数据问题

对于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环境中,在生产环境里,将使用真正的服务。

总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值