JAVA方法mock调用工具的实现

背景

在生产上线时,可能遇到有一些case不好立即验证;

  • 例如用户必须是xx用户(新用户,流失用户...)才能领到某些活动券,而这样的用户账号不好获取;
  • 例如想让测试用户看到不同的页面效果;

所以希望在调用一些方法接口的时候针对指定入参可以返回指定的返回结果。

这些方法可以是调用上游的dubbo方法,也可以是内部自己的本地方法等。

方案设计

入参出参分析

首先来看方法的参数和返回结果的类型,以及入参和出参组装分类;

入参出参数据类型分类

  • 基本类型或者包装类型:int, double, Integer,String,Boolean...
  • 集合类型:List,Map<K, V>...
  • 复杂类型:xxxRequest,xxxResponse

入参出参组装分类

入参:

  • 无入参

    public int fun();

  • 一个入参(可能是三种类型的其中一种)

    • public int fun(String s);

    • public int fun(List list);

    • public int fun(xxxRequest request);

  • 多个入参(可能是三种类型都有)

    • public int fun(String s, List list, xxxRequest request);

出参:

  • 一个出参(可能是三种类型的其中一种)

    • public Integer fun();

    • public List fun();

    • public xxxResponse fun();

  • 无出参(不考虑)

mock配置方式

针对上面对方法入参和出参的分析,可以确定我们需要实现mock的场景和配置方式。

入参:match配置内容则返回mock结果

  1. 方法没有入参,无需配置对比;

  2. 方法入参类型为基本类型或集合类型(Integer,List);序列化后整体做对比

  3. 方法入参类型为复杂类型(xxxRequest);可选取部分字段对比

    需要注意List也需要序列化后整体做对比

出参:

  1. 想要构造整个出参的结果;

  2. 想要从真实调用中修改结果的某几个字段的值;

    其中有些字段嵌套的比较深,可利用"a.b.c"的配置方式来修改,可参考下文的配置;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值