mock-初识MOCK测试

什么是MOCK测试

mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。

测试介绍

对象

这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。

对象使用范畴

真实对象具有不可确定的行为,产生不可预测的效果,(如:股票行情,天气预报)真实对象很难被创建的 真实对象的某些
行为很难被触发真实对象实际上还不存在的(和其他开发小组或者和新的硬件打交道)等等。

关键步骤

使用一个接口来描述这个对象。在产品代码中实现这个接口,在测试代码中实现这个接口,在被测试代码中只是通过接口来
引用对象,所以它不知道这个引用的对象是真实对象,还是mock对象。

测试工具

使用Mock Object进行测试,主要是用来模拟那些在应用中不容易构造(如HttpServletRequest必须在Servlet容器中才能构
造出来)或者比较复杂的对象(如JDBC中的ResultSet对象)从而使测试顺利进行的工具。
目前,在Java阵营中主要的Mock测试工具有JMock,MockCreator,Mockrunner,EasyMock,MockMaker等,在微软的
.Net阵营中主要是Nmock,.NetMock等。

MOCK server接口

如何通过Python来模拟接口的返回

例如:第三方支付公司,(有支付牌照的公司),外部接口;
我们只是想测试一下接口,不进行真正的充值或者提现成功等;
这样我们就可以使用MOCK来进行模拟测试;

什么情况下就可以使用mock接口?

1、我们的有依赖接口,需要依赖外部接口或者内容接口;不是一个数据库,就可以进行来模拟;
2、模拟调用,实际并未调用,没有真实数据的修改或者变动;

MOCK基本用法

定义mock类
class Mock(spec = None,side_seffect=None,return_value=DEFAULT,name=None)
spec:定义mock对象的属性值,可以是一个列表,字符串,甚至一个对象或者实例。
side_seffect:可以用来抛出异常或者动态改变返回值,它必须是一个iterator,他会覆盖return_value
return_value:定义mock方法的返回值,他可以是一个值,可以是一个对象
name:作为mock对象的一个标识,在print时可以看到

MOCK断言方法

assert_called(*args,**kwargs):
判断mock对象或者方法至少被调用一次
assert_called_once(*args,**kwargs):
判断mock对象或者方法只被调用过一次
assert-called_with(*args,**kwargs):
判断mock方法调用时使用了正确的参数
assert_called_once_with(*args,**kwargs):
判断mock调用是试用参数且只调用过一次
assert_any_call(*args,**kwargs):
判断mock对象曾经被调用过
assert_has_calls(calls,any_order=False):
判断多次被调用
assert_not_called(*args,**kwargs):
判断从未被调用

MOCK断言统计

called:mock对象是否被调用
calle_count:mock对象被调用的次数
call_args:获取最近调用使用的参数
call_args_list:获取工厂调用时的所有参数【列表】
method_calls:测试当前mock对象调用了哪些方法 

MOCK 未完待续

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天下的风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值