一、什么是Mock
以可控的方式模拟第三方接口行为的假的对象,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为。
二、 mock为了解决什么问题?
项目有对接第三方,但第三方的控制权却不受我们掌控。
比如说支付中最常用的刷卡支付,有可能直接支付成功,也有可能返回支付中,此逻辑受平台方风控逻辑校验,对我们来说完全是黑盒子,为了让我们的测试能够更加全面,让第三方接口返回我们想要的结果,所以利用mock来返回我们预期想要的结果。
三、什么时候使用mock,目前我们最常使用的场景:
1、依赖的接口不稳定,导致经常执行的用例不通过,需要耗费大量的时间排查非被测目标本身之外的环境问题
2、第三方接口行为是不确定的,没有办法返回预期结果
例如,刷卡支付根据平台方的风控逻辑校验,有可能直接支付成功,也有可能返回支付中
3、第三方接口某些的行为很难触发(例如:网络错误);
4、第三方接口可能还没有开发好
例如:A部门的某个接口还没有开发好,但是B部门的业务需要使用到这个接口,就可以先mock掉A的接口,来减少A对B进度的影响
5、第三方接口做了信息真实性校验,测试数据无法通过返回接口
例如:微信商户入驻以及所有的支付接口