概述
MOCK测试
- 什么是MOCK测试
- 测试介绍
- 对象
- 对象使用范畴
- 关键步骤
- 测试工具
- MOCK server接口
- 如何通过Python来模拟接口的返回
- 什么情况下就可以使用mock接口?
- MOCK基本用法
- MOCK断言方法
- 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 未完待续
最后
以上就是虚拟香烟为你收集整理的mock-初识MOCK测试什么是MOCK测试的全部内容,希望文章能够帮你解决mock-初识MOCK测试什么是MOCK测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复