我需要修补从同一文件导入的包含我要测试的另一个函数的函数,但是它不能正常工作= /。
# funcs.py
def func_one():
return 1
def func_two():
return func_one() + 2
from .funcs import func_two
class TestFunc(TestCase):
def test_func_two(self):
with patch('func_one', 0):
result = func_two()
result
应该是两个,但是测试出错:
TypeError: Need a valid target to patch. You supplied: 'func_one'
答案 0 :(得分:1)
我需要导入函数的绝对路径:
from .funcs import func_two
class TestFunc(TestCase):
def test_func_two(self):
@patch('funcs.func_one', MagicMock(return_value=0)):
result = func_two()
funcs.func_one
是整个模块路径+函数名称。