mock的官网学习备忘录:官网地址https://docs.python.org/3/library/unittest.mock.html#quick-guide

1,安装

python3 unittest内置了mock,直接from unittest import mock就可以

2,简介

用mock 可以对依赖组件进行模拟并替换掉, 从而不影响本次测试,不需要关心和本次功能无关的其他外在条件

可以配置它们,指定返回值或限制哪些属性可用,然后断言它们是如何被使用的

3快速开始

#patch的用法,
from unittest.mock import patch
def f1():
return 'f1'
def f2():
return 'f2' class Testf(unittest.TestCase):
#这里直接写patch(f1)会报错,因为官方格式必须是@patch('module.ClassName2')
"""
target, attribute = target.rsplit('.', 1)
ValueError: not enough values to unpack (expected 2, got 1)
During handling of the above exception, another exception occurred:
TypeError: Need a valid target to patch. You supplied: 'f1'
"""
#因为就是这个文件里的,所以就写上当前文件的名字就可以额
#@unittest.mock.patch("mock_learn.f1")
@unittest.mock.patch("f1")
def test_f2(self,fun):
#因为patch了f1,所以下面的fun指的就是f1了
fun.return_value='sb'
#print (f1()) #f1
print (f2()) #f2 if __name__=="__main__":
unittest.main() #方法在文件里
'''
from unittest.mock import patch
import test3 class TestCount(unittest.TestCase): @unittest.mock.patch("test3.fun1")
def test_fun2(self,fun): fun.return_value='sb'
ff=test3.fun2()
fun.assert_called_once_with()
print (ff) if __name__=="__main__":
unittest.main() #sbfun2
'''
#class在文件test3.py中
'''
from unittest.mock import patch
import test3 class TestCount(unittest.TestCase): @unittest.mock.patch("test3.Over.f1") def test_f2(self,fun): fun.return_value='sb'
over=test3.Over()
ff=over.f2()
#fun.assert_called_once_with()
#因为没调用f1,所以这个断言报错Expected 'f1' to be called once. Called 0 times
print (ff) if __name__=="__main__":
unittest.main()
#f2
'''

python3 mock的更多相关文章

  1. Python3的单元测试模块Mock与性能测试模块CProfile

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_92 我们知道写完了代码需要自己跑一跑进行测试,一个写好的程序如果连测试都没有就上到生产环境是不敢想象的,这么做的人不是太自信就是太 ...

  2. python mock基本使用

    什么是mock? mock在翻译过来有模拟的意思.这里要介绍的mock是辅助单元测试的一个模块.它允许您用模拟对象替换您的系统的部分,并对它们已使用的方式进行断言. 在Python2.x 中 mock ...

  3. Python单元测试和Mock测试

    单元测试 测试可以保证你的代码在一系列给定条件下正常工作 测试允许人们确保对代码的改动不会破坏现有的功能 测试迫使人们在不寻常条件的情况下思考代码,这可能会揭示出逻辑错误 良好的测试要求模块化,解耦代 ...

  4. 使用 Python Mock 类进行单元测试

    数据类型.模型或节点——这些都只是mock对象可承担的角色.但mock在单元测试中扮演一个什么角色呢? 有时,你需要为单元测试的初始设置准备一些“其他”的代码资源.但这些资源兴许会不可用,不稳定,或者 ...

  5. flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台(总结感悟篇)

    前言: 在前进中去发现自己的不足,在学习中去丰富自己的能力,在放弃时想想自己最初的目的,在困难面前想想怎么踏过去.在不断成长中去磨炼自己. 正文: 时间轴 flask + Python3 实现的的AP ...

  6. mock详解

    一.Mock在单元测试中扮演一个什么角色 有时,你需要为单元测试的初始设置准备一些“其他”的代码资源.但这些资源兴许会不可用,不稳定,或者是使用起来太笨重.你可以试着找一些其他的资源替代:或者你可以通 ...

  7. Python3 标准库学习

    python3.5.6 官方文档  https://docs.python.org/3.5/library/index.html 1.介绍 2.内置函数 3.内置常量 3.1常数添加的 site模块 ...

  8. 利用Python中的mock库对Python代码进行模拟测试

    这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下     ...

  9. 测试开发系列之Python开发mock接口(一)

    什么是mock接口呢,举个栗子,你在一家电商公司,有查看商品.购物.支付.发 货.收获等等等一大堆功能,你是一个测试人员,测测测,测到支付功能的时候,你就要调用第三方支付接口了,真实支付,直接扣你支付 ...

随机推荐

  1. Code Signal_练习题_almostIncreasingSequence

    Given a sequence of integers as an array, determine whether it is possible to obtain a strictly incr ...

  2. [转]XSS的原理分析与解剖:第四章(编码与绕过)

    0×01前言 很抱歉,这第四章被我推了几个月,今天是元旦难得有空,就把第四章写下.我先把主要使用的编码说下,介绍完会说下绕过. 本文建议与<杂谈如何绕过WAF>一同阅读. 0×02 URL ...

  3. 如何在C/S下打印报表

     java应用有不少是C/S模式,在C/S模式下,同样可以调用API接口运算报表.CSReport是C/S模式下的报表控件类,在这个类中可以获得报表的显示面板.获得报表的打印面板.显示报表打印窗口 ...

  4. Object.defineProperty 与数据绑定的简单实现

    对象是一个属性集合,对象的基本特征是属性名(name)和属性值(value).ES5 增加了属性描述符,包括数据属性描述符(configurable enumerable writable value ...

  5. windows Ctrl + Alt + 方向键 取消屏幕反转

    1.在桌面右击 2.再次右击桌面 3.单击选项和支持 4.点击禁用和应用

  6. Windows 安装 python MySQLdb模块

    pip install wheel 去这个网站查找whl格式的MYSQL-python http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python ...

  7. git下配置github sshkey

    教程看这里 http://xiaxveliang.blog.163.com/blog/static/29708034201341244759225/

  8. Python 3.0 写日志时出现乱码

    问题描述 python 3.0启用日志, 在pycharm里打开.log文件时中文都显示乱码. 根本原因 默认日志编译用的是GBK, 而python 3.0写程序用的是UTF-8. 所以.log文件中 ...

  9. DELETE语句总结

    一.基本语句 1.SQL DELETE 语法 DELETE FROM table_name WHERE condition; 请注意 删除表格中的记录时要小心!注意SQL DELETE 语句中的 WH ...

  10. BackgroundWorker原理剖析

    BackgroundWorker类位于System.ComponentModel命名空间下,主要用来异步执行一个长时间的操作,然后,在完成事件中安全更新UI的控件属性.UI中的控件是不允许非创建该控件 ...