一、mock是什么?
英译中含义有:虚假的; 不诚实的; 模仿的; 模拟的 这个意思
这个库的主要功能就是模拟一些事务
官方解释:Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为
二、为什么要用mock"color: #ff0000">三、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简单举例
from unittest import mock def add(num1,num2): return num1 + num2 # pass add_value = mock.Mock(return_value=200) # 创建mock对象 add = add_value # 把mock对象赋值给add方法 print( add(10,20) )
从上述代码执行可以看出,假使我把add()方法的实现改为pass,暂时还未实现,也可以通过mock先返回所需要的数据。
3.3 mock应用举例
import requests def send_request(url): r = requests.get(url) return r.status_code def visit_newdream(): return send_request("http://www.hnxmxit.com/") print( visit_newdream() )
上述代码是访问我们公司的官网,假设该官网访问请求还没被实现,此时 visit_newdream() 方法需要 send_request 返回响应状态码。这个时候可以用到mock。
# 当前文件名为 mock_demo.py import unittest from unittest import mock import requests import mock_demo def send_request(url): r = requests.get(url) return r.status_code def visit_newdream(): return send_request("http://www.hnxmxit.com/") class TestClient(unittest.TestCase): def test_success_request(self): success_send = mock.Mock(return_value='200') mock_demo.send_request = success_send self.assertEqual(mock_demo.visit_newdream(), '200') if __name__=="__main__": unittest.main()
上述代码完成了mock的简单应用,由于mock_demo.send_request = success_send 把mock对象赋值给了方法,使得方法再次调用的时候使用了mock的方法完成把模拟返回值传递给mock_demo.visit_newdream()方法。
四、小结
- 此文基础的介绍了mock的入门;
- 读者实操出来有一定的想法后完全可以应用到接口测试和单元测试过程中去。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
python,Mock模块
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Python Mock模块原理及使用方法详解”评论...
更新日志
2024年12月25日
2024年12月25日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]