返回顶部
首页 > 资讯 > 后端开发 > Python >python mock 的一些小例子
  • 395
分享到

python mock 的一些小例子

些小例子python 2023-01-31 04:01:55 395人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

1.假如我想要mock库中date对象,但是我只想mock today()这个方法,就是today()返回我想要的结果,但是其他的date的初始化方法不能有所改变。 from datatime import date with patc

1.假如我想要mock库中date对象,但是我只想mock today()这个方法,就是today()返回我想要的结果,但是其他的date的初始化方法不能有所改变。

from datatime import date
with patch('mymodule.date') as mock_date:
    mock_date.taday.return_value = date(2010,10,8)
    mock_date.side_effect = lambda *args, **kw:date(*args, **kw)
    
    assert mymodule.date.today() == date(2010,10,8)
    assert mymodule.date(2009,6,8) == date(2009,6,8)


2.配置mock

mock = Mock()
attrs = {'method.return_value':3,'other.side_effect':KeyError}
mock.configure_mock(**attrs)
mock.method()   # return 3
mock.other()    # return KeyError

3.mock其他module中使用的函数

假如test_fuction_uu.py中要测试fuction_uu,但是fuction_uu调用了myfuction,我想要mock这个myfuction。终于用如下的patch的方式搞定了

test_module.py

def myfuction():
    return 2


def fuction_uu():
    return myfuction()

test_mock_fuction.py

@patch('test_module.myfuction',MagicMock(return_value = 13))
def test_faction_uu():
    print  fuction_uu()
    
if __name__ == '__main__':
    test_faction_uu()

4.对于类的patch,注意setup和teardown,在mock的官方文档中说如果setup中抛出异常,那么teardown就不会被执行,这可能会造成一个坑。文档上说用unittest2中的cleanup函数可以避免这个问题。

class MyTest():
    def setUp(self):
        patcher = patch('package.module.Class')
        self.MockClass = patcher.start()
        self.addCleanup(patcher.stop)
    
    def test_something(self):
        assert package.Module.Class is self.MockClass   

5.patch.object可以有“替换”参数的作用,下面这个

@patch.object(SomeClass,'class_mothod') 
def test(mock_method):
    SomeClass.class_method(3)
    mock_method.assert_called_with(3)
    
test()   # attention: no parameter!


6.mock数据库操作

mock = Mock()
cursor = mock.connection.cursor.return_value
cursor.execute.return_value = ['foo']
mock.conection.cursor().execute("select 1")
# return ['foo']
expected = call.connection.cursor().execute("select 1")
mock.mock_calls
#return [call.connection.cursor(),call.connection.cursor().ececute('select 1')]
mock.mock_calls == expected
#return True





--结束END--

本文标题: python mock 的一些小例子

本文链接: https://lsjlt.com/news/187858.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python mock 的一些小例子
    1.假如我想要mock库中date对象,但是我只想mock today()这个方法,就是today()返回我想要的结果,但是其他的date的初始化方法不能有所改变。 from datatime import date with patc...
    99+
    2023-01-31
    些小 例子 python
  • 100 个 Python 小例子(练习题一)
    目录实例001:数字组合 实例002:“个税计算”实例003:完全平方数实例004:这天第几天实例005:三数排序实例006:斐波那契数列实例007:copy实例008:九九乘法表实...
    99+
    2024-04-02
  • python字典的小例子
    (helloworld) [root@iZ2ze7qh7q0di3qkvef1dzZ ~]# more dic_test.py#!/usr/bin/pythoninfo ={}name=raw_input("Please inpu...
    99+
    2023-06-02
  • python学习(六)--正则的一些例子
    import re#正则表达式#compile函数,--将正则表达式转变为内部函数,提高执行效率strr = "python123456"pattern = "Python"res = re.compile(pattern)#当忽略匹配大小...
    99+
    2023-01-31
    正则 例子 python
  • 小猿圈python之练习小例子
    每天坚持学习python内容是很重要的,很多人通过看视频学习,但是只是喜欢听老师讲课,听完也都感觉自己都懂了,很满足,真的是这样吗?你真的懂了吗?自己可以做一下小练习测试一下,发现做一个不会一个,为什么呢?小猿圈加加告诉你真相,因为pyt...
    99+
    2023-01-31
    例子 小猿圈 python
  • python矩阵操作小例子
    转自:https://www.hustyx.com/python/67/ 因为经常写for所以感觉有点low而且运行效率不高,慢慢学习改进,这个矩阵操作例子还不错可以学学。 用Python实现矩阵的加法运算和乘法运算,写几层for循环,实...
    99+
    2023-01-31
    矩阵 例子 操作
  • 每天下班写一个python小例子,Day day up
    最近每天下班回家有时间就会写个小例子,一个月下来的成果,分享给大家学习共勉~第一个4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列...
    99+
    2023-06-02
  • 一个例子走近 Python 的 Mixi
    这篇博客,是我在看了《Python GUI Programming with Tkinter》第 76 页的小节 Exploiting the power of multiple inheritance 之后,压抑不住自己的激动...
    99+
    2023-01-31
    例子 Python Mixi
  • JAVA数据库应用的一个小例子
    自己随便写的,以炉石为背景,写一个参考用的小例子,先上SQL表:if OBJECT_ID('card_pool') is not null drop table card_pool;create ...
    99+
    2024-04-02
  • python中有哪些统计mock的方法
    python中有哪些统计mock的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、说明called:表示是否调用过。call_count:返回调用的次数。call_arg...
    99+
    2023-06-15
  • 100 个 Python 小例子(练习题二)
    目录实例031:字母识词实例032:反向输出II实例033:列表转字符串实例034:调用函数 实例035:设置输出颜色实例036:算素数实例037:排序实例038:矩阵对角线之和实例...
    99+
    2024-04-02
  • 100个Python小例子(练习题三)
    目录实例051:按位与实例052:按位或实例053:按位异或实例054:位取反、位移动实例055:按位取反实例056:画圈实例057:画线实例058:画矩形实例059:画图(丑)实例...
    99+
    2024-04-02
  • 100 个 Python 小例子(练习题四)
    目录实例076:做函数实例077:遍历列表实例078:字典例079:字符串排序实例080:猴子分桃实例081:求未知数实例082:八进制转十进制实例083:制作奇数实例084:连接字...
    99+
    2024-04-02
  • Python实用例子有哪些
    这篇文章主要讲解了“Python实用例子有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python实用例子有哪些”吧!一、基本操作1 链式比较i=3print(1<i<3)...
    99+
    2023-06-02
  • python中的mock接口开发示例详解
    什么是mock mock在翻译过来有模拟的意思。它允许您用模拟对象替换您的系统的部分,并对它们已使用的方式进行断言。 Mock通常是指,在测试一个对象时,我们构造一些假的对象来模拟与...
    99+
    2024-04-02
  • Python五子棋小游戏实例分享
    本文实例为大家分享了Python实现五子棋小游戏的具体代码,供大家参考,具体内容如下 使用的库 pygame、pyautogui 流程简述 1.画棋盘 设置网格间隔40px ,留白 ...
    99+
    2024-04-02
  • python实现一个摇骰子小游戏
    目录一、程序实现二、程序优化总结一、程序实现 分析问题:骰子比大小是我们经常玩的一个小游戏也十分的简单,就是不同玩家骰子点数比较大小。 编写程序: #骰子比大小 import ran...
    99+
    2024-04-02
  • 由一个例子到python的名字空间
    源自我的博客 python里面最核心的内容就是:名字空间(namespace) 例1 #!/usr/bin/env python # encoding: utf-8 def func1(): x = 1 prin...
    99+
    2023-01-31
    例子 名字 空间
  • 有关python的一些小知识
    1.关于input:input()为标准输入函数,和C语言中scanf的用法类似。但在使用input时,会从标准输入中读取一个string(字符串),对于用户换行不会读入。如果想转换为整型,a=int(input(“请输入:”))。2.fo...
    99+
    2023-01-31
    小知识 python
  • python 嵌套list的一些小结
    1.遍历嵌套list 将嵌套的list遍历并输出是很常见的需求。以下通过两种方法达到目的 def nested_list(list_raw,result): for item in list_raw: if...
    99+
    2023-01-31
    嵌套 小结 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作