You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在pytest中一次性Mock多个指定模块及子模块?

可以合并为一行操作

当然可以把这些Mock操作合并成一行,用sys.modules.update()配合字典推导式就能实现:

sys.modules.update({mod: MagicMock() for mod in ['common.util', 'common.shared.utils', 'common.public.utils']})

原理很简单:字典推导式生成一个键为模块名、值为MagicMock()实例的字典,sys.modules.update()方法会把这个字典里的键值对批量更新到系统模块字典中,一次性完成三个模块的Mock替换。

你也可以用一行for循环实现,写法更直白:

for mod in ['common.util', 'common.shared.utils', 'common.public.utils']: sys.modules[mod] = MagicMock()

注意要提前导入依赖:

import sys
from unittest.mock import MagicMock

内容的提问来源于stack exchange,提问作者Jayleen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 04:50:33