时间:2021-05-22
一、mock是什么?
英译中含义有:虚假的; 不诚实的; 模仿的; 模拟的 这个意思
这个库的主要功能就是模拟一些事务
官方解释:Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为
二、为什么要用mock?
举例:
假设你开发一个项目,里面包含了一个登录模块,登录模块需要调用身份证验证模块中的认证函数,该认证函数会进行值的返回,然后系统根据这个返回值来做判断是否能进行登录。但是身份证验证模块中的认证函数只有在正式上线的系统上才提供。公司内部的测试环境或者开发环境上不提供。
如果此时需要进行登录模块的业务测试或接口测试,该如何做?
方法一:
搭建一个测试服务器,在测试的时候,让认证函数和这个测试服务器交互,返回值给登录模块;
缺点:
1、测试服务器可能不好搭建,或者搭建效率很低;
2、搭建的测试服务器可能无法返回所有可能的值,或者需要大量的工作才能达到这个目的。
方法二:
使用mock函数模拟即可。
三、mock应用
3.1 mock安装
在Python 3.3以前的版本中,需要另外安装mock模块,可以使用pip命令来安装:
pip install mock
从Python 3.3开始,mock模块已经被合并到标准库中,被命名为unittest.mock,可以直接import进来使用:
from unittest import mock
备注:目前Python 3.3之后的版本,也可以使用第一种方式应用mock
3.2 mock简单举例
从上述代码执行可以看出,假使我把add()方法的实现改为pass,暂时还未实现,也可以通过mock先返回所需要的数据。
3.3 mock应用举例
上述代码完成了mock的简单应用,由于mock_demo.send_request = success_send 把mock对象赋值给了方法,使得方法再次调用的时候使用了mock的方法完成把模拟返回值传递给mock_demo.visit_newdream()方法。
四、小结
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python下os模块强大的重命名方法renames详解在python中有很多强大的模块,其中我们经常要使用的就是OS模块,OS模块提供了超过200个方法来供我
Python中格式化format()方法详解Python中格式化输出字符串使用format()函数,字符串即类,可以使用方法;Python是完全面向对象的语言,
Mock文件系统相关的工具包括:Mockfs模块的工具mock-fs。Mockrequire模块的工具mock-require。安装mock-fs和mock-r
前言Python自带了几个性能分析的模块:profile、cProfile和hotshot,使用方法基本都差不多,无非模块是纯Python还是用C写的。本文介绍
python系统调用的实例详解本文将通过两种方法对python系统调用进行讲解,包括python使用CreateProcess函数运行其他程序和ctypes模块