Python 测试与日志:Mock 对象和日志系统的全面指南
1. Mock 对象在测试中的应用
在编写测试时,我们不仅要测试自己的代码,还需处理与外部资源(如硬件、数据库、Web 主机和服务器等)的交互。有些测试可以安全运行,但有些测试可能速度慢、有风险甚至无法运行。这时,Mock 对象就派上用场了,它可以模拟任何外部资源,确保代码不受外部因素干扰,仍能返回预期结果。
1.1 使用 unittest.mock
unittest.mock 库提供了 Mock 和 MagicMock 两个基础对象,方便我们模拟外部资源。 Mock 是通用的模拟对象,而 MagicMock 类似,但定义了如 __contains__ 和 __len__ 等魔法方法,使用起来更便捷。除了手动创建 Mock 对象,还可以使用 patch 装饰器或上下文管理器直接修补对象。
以下是一个使用 random 函数根据概率返回 True 或 False 的示例:
from unittest import mock
import random
def bernoulli(p):
return random.random() > p
@mock.patch('rando
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



