从另一个文件模拟本地功能

时间:2019-07-02 18:59:57

标签: python mocking patch python-unittest

我需要修补从同一文件导入的包含我要测试的另一个函数的函数,但是它不能正常工作= /。

# 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'

1 个答案:

答案 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整个模块路径+函数名称