Mock服务的理解和搭建

在测试过程中,很多时候会遇到依赖服务调用失败的问题,就无法正常调用整个链路。对于开发而言可以通过代码的控制对某一部分代码进行截断处理从而对代码进行正确性校验。但对于测试来说更追求链路的完整性,因此需要对全链路的调通有较高要求。如果遇到某些依赖服务调用失败,可以通过Mock的方式将该不正常服务代替。

异常场景包括 调用超时、返回值不符合预期、服务无提供者、服务抛异常等,通过用mock的方式,可以直接造一个固定服务,这个服务有跟原异常服务相同数据结构的接口名、方法名、入参以及返回值。而mock服务的内部逻辑与原服务无需有任何关联。于是我们可以分类两种类型的mock服务:①有一定逻辑的mock服务;②无逻辑的mock服务。

先说说第一种①有一定逻辑的mock服务:这类mock服务的返回值收入参的影响,对于不同的入参返回不同的结果,这类mock服务在功能逻辑上与原服务基本保持一致,但内部代码可以不同。比如,原服务中的逻辑是,输入一个100以内的整数n,并通过试除法算出n是否为质数。这时服务由于某种原因挂了,那么我们搭建一个mock服务,将100以内的质数定义到服务里面的一个列表,将入参与质数列表做查询比对,如果查到即为质数。像这样的,mock的功能逻辑与原服务保持一致,而代码却不相同。

再来看第二种②无逻辑的mock服务:这类mock服务的返回值不受任何因素的影响,对于不同的入参永远只有一种返回结果,这类mock服务没有任何功能逻辑,只能充当一个固定数据用于固定 的场景。比如,原服务中的逻辑是输入一个整数n,并生成一个n以内的随机整数。但由于生成的整数是随机的因此无法控制确定的值,消费方需要用到特定的某个整数k时,如果按原逻辑需要输入一个值不断尝试直到生成的随机数k。这时我们可以搭建一个mock服务,直接定义方法返回值为k,这时不管输入参数是什么,都能返回场景需要的数据。像这样的,mock服务无逻辑,适合用于特定场景的测试校验。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值