【发布时间】:2020-06-19 01:49:20
【问题描述】:
如何使import pkg 在moduleA.py 中失败?如果从中导入了某些内容,我可以修补 pkg 以使其失败,否则不会:
# test.py
import os
import moduleA
from unittest.mock import patch
from importlib import reload
@patch.dict('sys.modules', pkg=os)
def test_mock():
reload(moduleA)
# moduleA.py
import pkg # make this fail
from pkg import sum # this does fail
【问题讨论】:
-
@patch('pkg')应该这样做。编辑:但补丁需要在你导入 moduleA 之前发生 -
@jordanm
TypeError: Need a valid target to patch. You supplied: 'pkg'。并且moduleA在test_mock中导入,然后重新加载(但在此之前引发 TypeError)
标签: python python-3.x mocking pytest python-unittest