我是靠谱客的博主 虚拟香烟,最近开发中收集的这篇文章主要介绍mock-初识MOCK测试什么是MOCK测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部