python Mock 示例
在Python3.x中,mock已经被集成到了unittest单元测试框架中,所以,可以直接使用。
可能你和我初次接触这个概念的时候会有这样的疑问:把要测的东西都模拟掉了还测试什么呢?
但在,实际生产中的项目是非常复杂的,对其进行单元测试的时候,会遇到以下问题:
- 接口的依赖
- 外部接口调用
- 测试环境非常复杂
单元测试应该只针对当前单元进行测试, 所有的内部或外部的依赖应该是稳定的, 已经在别处进行测试过的.使用mock 就可以对外部依赖组件实现进行模拟并且替换掉, 从而使得单元测试将焦点只放在当前的单元功能。
简单示例一:
from unittest.mock import Mock import unittest class Count():
def add(self,a,b):
return a+b class test_add(unittest.TestCase): def setUp(self):
pass def tearDown(self):
pass def test_add(self): count=Count() count.add=Mock(return_value=13) result=count.add(4,4) self.assertEqual(result,13) if __name__=='__main__': unittest.main()
count = Count()
首先,调用被测试类Count() 。
count.add = mock.Mock(return_value=13)
通过Mock类模拟被调用的方法add()方法,return_value 定义add()方法的返回值。
result = count.add(4,4)
接下来,相当于在正常的调用add()方法,传两个参数4和4,然后会得到相加的结果8。
然后,13的结果是我们在上一步就预先设定好的。
self.assertEqual(result,13)
最后,通过assertEqual()方法断言,返回的结果是否是预期的结果13。
简单示例二:
from unittest.mock import Mock
from unittest.mock import patch
import unittest class Count():
def add(self,a,b):
return a+b class test_add(unittest.TestCase): def setUp(self):
pass def tearDown(self):
pass @patch.object(Count,'add')
def test_add(self,mock_add): count=Count() mock_add.return_value=13 result=count.add(4,4) self.assertEqual(result,13) if __name__=='__main__': unittest.main()
参考:https://www.cnblogs.com/ajianbeyourself/p/8795441.html
python Mock 示例的更多相关文章
- Python Mock的入门学习
		一.Mock是什么 Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西.准确的说,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象 ... 
- Python mock
		在测试过程中,为了更好地展开单元测试,mock一些数据跟对象在所难免,下面讲一下python的mock的简单用法. 关于python mock,网上有很多资料,这里不会讲的特别深,但一定会是实用为主, ... 
- 使用 Python Mock 类进行单元测试
		数据类型.模型或节点——这些都只是mock对象可承担的角色.但mock在单元测试中扮演一个什么角色呢? 有时,你需要为单元测试的初始设置准备一些“其他”的代码资源.但这些资源兴许会不可用,不稳定,或者 ... 
- Python Mock的入门(转)
		原文:https://segmentfault.com/a/1190000002965620 Mock是什么 Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西. ... 
- 开发神技能 | Python Mock 的入门
		Mock是什么 Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西.准确的说,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代 ... 
- Python Mock 的入门
		Mock是什么 Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西.准确的说,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代 ... 
- python selenium2示例 - 生成 HTMLTestRunner 测试报告
		前言 在python selenium2自动化测试过程中,一个合适的报告是必须的,而HTMLTestRunner模块为我们提供了一个很好的报告生成功能. 什么是HTMLTestRunner HTMLT ... 
- 2018-06-29 "西游记"主题Python入门示例尝试-数据结构 5.1-5.1.2
		(见前: 中文代码示例视频演示Python入门第五章 数据结构 仍然基于官方文档, 欢迎建议(尤其是如何取材). 5. Data Structures - More on Lists 列表详述 > ... 
- redis sentinel 高可用(HA)方案部署,及python应用示例
		redis sentinel(哨兵)高可用集群的部署方法,并通过 python 程序实例讲解如何使用 redis sentinel 简介 介绍 redis sentinel(哨兵)集群的部署,配置一主 ... 
随机推荐
- 用SAS提交SAS代码
			OPTIONS NOXWAIT;%LET PATH=%STR(C:\Program Files\SAS\SAS 9.1);%LET CODEPATH=%STR(D:\001.RIPP.MODEL);% ... 
- 将文件File转换成byte数组
			代码如下: /** * 将文件转换成byte数组 * @param filePath * @return */ public static byte[] File2byte(File tradeFil ... 
- Linux系统中日志级别详情
			日志信息分类 1.等级由低到高:debug<info<warn<Error<Fatal; 2.区别: debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系 ... 
- ThinkPHP 5.1 跨域中间件
			<?php namespace app\http\middleware; class CrossDomain { public function handle($request, \Closur ... 
- File checksum
			File checksum https://golang.org/pkg/io/#Copy https://blog.iphpo.com/blog/2017/03/golang-產生檔案的md5-ha ... 
- pd.ExcelWriter(to_excel)保存结果到已存在的excel文件中
			网易云课堂该课程链接地址 https://study.163.com/course/courseMain.htm?share=2&shareId=400000000398149&cou ... 
- sails 相关软件下载地址及命令
			vscode1.40 https://vscode.cdn.azure.cn/stable/f359dd69833dd8800b54d458f6d37ab7c78df520/VSCodeUserS ... 
- TrueType字体
			TrueType字形描述技术和TTF文件 TrueType字体技术的研究分析与应用 看起来上面两篇都是翻译的文档. 看微软的原文介绍: TrueType fundamentals 其他文章: 获取Tr ... 
- ARM 链接脚本分析
			分析连接脚本的语法规则 /* ---------------------------------------------------------------------------- * Memory ... 
- 阿里云环境安装K8S步骤
			1. 安装docker yum install -y docker 2. 修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值 $ vim /et ... 
