【发布时间】:2021-08-05 12:45:11
【问题描述】:
我在打补丁时遇到问题,如何正确地给A类打补丁?
a.py
class A:
pass
插件.py
from a import A
CONFIG = {'aenum': A}
def do():
instance = CONFIG['aenum']() # the A class is NOT patched using this
# instance = A() # the test passes with this
return instance.auth()
test.py(使用pytest运行)
from unittest.mock import Mock, patch
import plugin
def test_do():
a_instance_mock = Mock()
a_instance_mock.auth.return_value = 42
with patch("plugin.A", return_value=a_instance_mock):
assert plugin.do() == 42
【问题讨论】: