python比较数据工具_Python模拟数据工具哪些比较好用
今天给大家推荐两款基本的Python模拟数据工具:mock和pytest monkeypatch。
为什么要模拟数据?
我们的应用中有一些部分需要依赖外部的库或对象。为了隔离开这部分,我们需要代替这些外部依赖,因而就用到了模拟数据。我们模拟外部的API来产生特定的行为,比如说返回符合之前定义的恰当的返回值。
模拟函数
我们有一个function.py的模块:
然后我们来看下如何将其与Mock库结合使用的:
这里发生了什么?1-4行是为了兼容python 2和3来引入的代码,在python 3中mock是一个标准库,而在python 2中你需要手动安装(pip install mock)。
在
第13行对square函数调用mock的Patch方法,一定要在使用该函数的地方调用patch方法。比如,我将在程序自身中调用square(5)
函数,因而我在__main__中使用patch,举例来说python tests/test_function.py。而如果我使用pytest的
话,那么我将使用test_function.square来替换此处的__main__.square。
在第18-19行,我针对square和cube方法调用了patch函数,因为它们将在main函数中被使用。最后的两个assert语句是为了确保mock被恰当地使用。
同样也可以用monkeypatching来完成此工作:
你能看到我使用monkeypatch.setattr来针对给定的函数设置返回值,同样我也需要在恰当的地方调用monkeypatch函数。
模拟类
我有一个名叫square的模块:
使用方法如下:
在第13行我对类Square进行patch,而15和16行表示了mocking的实例,首先mocked_instance是一个模拟对
象,针对mock.calculate_area我添加了return_value的值为1.在23行我使用MagicMock方法,它同样是一个标准的
mock类,只是它可以从一个给定的对象中检索出相应的方法。最后我使用patch.object来模拟Square类中的方法。
Pytest中代码如下:
这里的问题在于test_mocking_class_methods在python 3中工作正常,但是python 2中却不行。目前我还没有太想清楚这一点,希望你能帮助我!
所有的示例都能在这里找到。
顺便再给大家推荐一个Python视频教程:http://www.maiziedu.com/course/python/里面有各种Python基础知识讲解和Python开发项目,非常适合菜鸟和Python程序员看。
python比较数据工具_Python模拟数据工具哪些比较好用相关推荐
- 与python相关的爬虫工具_python爬虫常用工具集合
一.常用模块 1.requests模块,网络请求 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比url ...
- python自然语言处理库_Python自然语言处理工具库(含中文处理)
自然语言处理(Natural Language Processing,简称 NLP),是研究计算机处理人类语言的一门技术.随着深度学习在图像识别.语音识别领域的大放异彩,人们对深度学习在 NLP 的价 ...
- python代码覆盖率工具_Python代码覆盖率分析工具Coverage
简介 在测试中,为了度量产品质量,代码覆盖率被作为一种测试结果的评判依据,在Python代码中用来分析代码覆盖率的工具当属Coverage.代码覆盖率是由特定的测试套件覆盖被测源代码的程度来度量,Co ...
- python抓取数据包_python抓数据包
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 前言:数据科学越来越火了,网页是数据很大的一个来源. 最近很多人问怎么抓网页数据 ...
- python矩阵sin计算器_Python科学计算工具
Python科学计算工具-Numpy入门 2017.07.02 20:29:14字数 1,404阅读 2,509 一:前言 学了中国大学mooc的Python数据分析与展示课程感觉挺不错的,记录下来以 ...
- python提取数据段_python提取数据段 python数据分析
如何在python中用slice分段取数据? 执行以下操作:>> a=range(6)>> a[0, 1, 2, 3, 4,5]>& ...
- python数据预处理_Python数据分析——数据预处理的方法
前言 1. 关于数据集 数据来源:日月光华老师的<Python数据分析从入门到机器学习>的 lianjia 数据. 数据概况: cjtaoshu:成交套数 mendian:门店 cjzon ...
- python 导入离线地图_Python绘制数据地图可以应用与各种场景,只需要更改数据就行。...
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 主要用到的新的Python模块是Geopandas,就是利用它来绘制数据地 ...
- python的pip指令_python的pip工具命令有哪些
python的pip工具命令有:1.install命令,用于安装库:2.download命令,用于下载库:3.uninstall命令,用于卸载库:4.freeze命令,用以requirements格式 ...
最新文章
- 【C#】Gif文件生成
- 山水人家(附简要教程)
- 步步为营-104-SQL语句(截取字符串)
- c/c++在windows下获取时间和计算时间差的几种方法总结
- PyTorch机器学习从入门到实战
- Centos 编译安装nodejsexpress框架
- Windows 7 安装 .NET 5 / .NET Core 3.1 环境的方法和依赖文件
- 培智计算机教学论文,【培智数学论文】_培智数学教学论文
- LwIP应用开发笔记之八:LwIP无操作系统HTTP客户端
- MTK 驱动(63)---MTK TP驱动移植
- Maintenance Plans(维护计划)详解【转】
- css伪元素总结(内附实例)
- 面向计算机视觉的深度学习 | iBooker·ApacheCN
- docx文档文字怎么加边框_Word技巧:怎么给文本加方框
- Perl教程-1.Perl简介
- 【重磅整理】180篇NeurIPS2020顶会《强化学习领域》Accept论文大全
- 为什么我停掉孩子所有的兴趣班,也没停掉编程!
- 微信云开发之小游戏排行榜的实现,云数据库,云函数【白玉无冰】每天进步一点点
- sci论文、ei论文和ieee论文三者之间有什么区别?
- 浅谈Actor并发模型