Mock实现模拟python的对象
Mock库的应用
Mock在Python3.3之前是第三方库,需要安装 pip install Mock ;导入 import mock
Mock在Python3.3之后是Python标准库,导入方式为 from unittest import mock
Mock能够让我们模拟单元测试中不可用或繁重的资源;还可以模拟Python对象的行为
Mock 使用的原因:
一、环境由于客观原因由于无法搭建
二、搭建服务器的值需要大量工作才行
实现代码如下:
import requests
import shutil def send_Mock(url):
r = requests.get(url)
return r.status_code def visit_Mock():
return send_Mock("http://www.Teacherketang.com/") class Remove(object):
def rmdir(self,path="E:/"):
re = shutil.rmtree(path)
if re == None:
return "seccess"
else:
return "fail" def exists_get_rmdir(self):
return self.rmdir() 调用模块
from Mock_Test import Client_Mock
import unittest
from unittest import mock class Mock_Test(unittest.TestCase): def setUp(self):
self.r = Client_Mock.Remove() def test_success_mock(self):
success_mock = mock.Mock(return_value="200")
Client_Mock.send_Mock = success_mock
self.assertEqual(Client_Mock.visit_Mock(),"200") def test_fail_mock(self):
fail_mock = mock.Mock(return_value="404")
Client_Mock.send_Mock = fail_mock
self.assertEqual(Client_Mock.visit_Mock(), "404") def test_remove_success(self):
remove_success = mock.Mock(return_value="success")
self.r.rmdir = remove_success
self.assertEqual(self.r.exists_get_rmdir(),remove_success()) def test_remove_fail(self):
remove_fail = mock.Mock(return_value="fail")
self.r.rmdir = remove_fail
self.assertEqual(self.r.exists_get_rmdir(),remove_fail()) if __name__ == '__main__':
unittest.main(verbosity=2)
Mock实现模拟python的对象的更多相关文章
- 利用Python中的mock库对Python代码进行模拟测试
这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下 ...
- dva框架使用mock.js模拟数据 + fetch请求数据
what DVA? Dva是基于Redux做了一层封装,对于React的state管理,有很多方案,我选择了轻量.简单的Dva. dva 可以很方便就使用mock.js进行数据的模拟. 只需要三步,即 ...
- 帮Python找“对象”
引言:你一定会感叹:Python还缺找对象? 毕竟"一切皆对象"是人家Python的哲学理念.不过,Python 允许程序员以纯粹的面向过程的方式来使用它,所以人们有时会忽视它那 ...
- Vue+Mock.js模拟登录和表格的增删改查
有三类人不适合此篇文章: "喜欢站在道德制高点的圣母婊" -- 适合去教堂 "无理取闹的键盘侠" -- 国际新闻版块欢迎你去 "有一定基础但又喜欢逼逼 ...
- Python的对象操作(一)
python支持对象和函数 1. python是解释型语言,逐行运行 2. 对象调用 例子:删除文件的一个例子 2.1 先定义一个类 class MyApp: 2.2 import 引用要用到的模 ...
- python面对对象编程------4:类基本的特殊方法__str__,__repr__,__hash__,__new__,__bool__,6大比较方法
一:string相关:__str__(),__repr__(),__format__() str方法更面向人类阅读,print()使用的就是str repr方法更面对python,目标是希望生成一个放 ...
- Python进阶 - 对象,名字以及绑定
Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...
- Python 文件对象
Python 文件对象 1) 内置函数 open() 用于打开和创建文件对象 open(name,[,mode[,bufsize]]) 文件名.模式.缓冲区参数 mode: r 只读 w 写入 a 附 ...
- python中对象、类型和元类之间的关系
在python中对象.类型和元类构成了一个微妙的世界. 他们有在这个世界里和平共处,相辅相成.它们遵循着几条亘古不变的定律: 1.python中无处不对象 2.所有对象都有三种特性:id.类型.值 3 ...
随机推荐
- tailf
功能说明:tailf命令几乎等同于tail -f,与tail -f不同的是,如果文件不增长,那么它不会去访问磁盘文件,也不会更改文件的访问时间.tailf命令在工作中的主要使命就是跟踪日志文件,首先将 ...
- ubuntu 更改终端颜色
1.$ sudo gedit .bashrc 2.PS1="\[\033[1;36;01m\]\u\[\033[00m\]\[\033[1;34;01m\]@\[\033[00m\]\[\0 ...
- jquery spa
1.hashchange监听 2.根据url加载不同页面 $.ajax({ url:"/xx/xx.html" type:"get", dataType:&qu ...
- JDK,JRE,JVM三者关系
已上图,如有疏漏错误请在下面评论区指出,感激不尽!
- 彻底搞定Android开发中软键盘的常见问题
软键盘显示的原理 软件盘的本质是什么?软键盘其实是一个Dialog. InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参 ...
- mybatis源码阅读-初始化过程(七)
说明 mybatis初始化过程 就是解析xml到封装成Configuration对象 供后续使用 SqlSessionFactoryBuilder 代码例子 SqlSessionFactoryBuil ...
- [HZOJ10420]计算
[HZOJ10420]计算 题目 给定一个数列,第i个位置包含两个数ai,bi 每次询问给出x,y 求数列ai*x+bi*y的最大值 输入所有数为自然数,在int范围内 INPUT 第一行为n,m.n ...
- libcloud代码研究(三)——bugs
Bug 1:对不可迭代类进行迭代(libcloud.storage.driver.cloudfile line. 141-142) 使用libcloud连接自搭建swift服务,自己在服务器 ...
- 【ACM】hdu_1091_A+BIII_201307261112
A+B for Input-Output Practice (III)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/327 ...
- N天学习一个Linux命令之sudo
前言 新项目打算采用运维搭建的发布系统发代码,发布后生效前需要做一些处理,因为发布系统登录目标机器使用的是非root账号,所以需要使用sudo来提升权限.当执行sudo cd /xxx/xx时会提示报 ...