Python中Mock和Patch的区别

本文探讨Python单元测试中的Mock和Patch的区别。Mock对象库用于替换测试系统的组件并记录其使用,而Patch则是用于在测试上下文中临时替换类和模块的方法。使用Patch可以确保在测试结束后恢复原始状态,防止影响其他测试。文章通过代码示例阐述了两者的应用。

前言:

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

在测试并行开发(TPD)中,代码开发是第一位的。

尽管如此,我们还是要写出开发的测试,并执行它们来验证代码的准确性(而不是直接运行代码或使用控制台)。

在Python中,我们有一个叫做单元测试的过程,里面有mock 和patch 函数。

这篇文章将讨论这两个角色的用途和区别。

Mock 和Patch 对象库的用途和区别

在这篇文章中,我们不会把单元测试作为一个整体来处理,而是更多地关注于mock 和patch 函数。

我们使用mock Python包,用mock 对象替换你的被测系统的特定组件,并对它们的使用进行断言。

它是Python标准库的一个组成部分,从Python 3.3开始可以作为unittest.mock 。

unittest.mock 类消除了在整个测试套件中对几个存根的需要。

在执行了一个特定的动作后,我们可以设置关于我们使用了哪些方法/属性以及我们调用它们的参数的断言。

它让我们指定返回值并选择需要的功能。

MagicDock可以处理Magic 对象,它是Mock 的子类。

Mock 和MagicMock 对象在我们使用它们时自发地产生特性和方法,并记录使用信息。

嘲讽是基于action -> assertion (即先让mock 被使用,然后对它收到的调用进行断言)模式,而不是许多嘲讽框架使用的record -> replay 模式。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值