我注意到类方法被正确地模拟出来了,但是函数绕过了模拟并运行了实际的函数。
from module1 import myClass
from module2 import my_function
import unittest
from mock import patch
class TestStuff(unittest.TestCase):
    @patch('module2.my_function')
    @patch('module1.myClass.my_method')
    def test_my_function(self, mock_method, mock_function):
        test_obj = myClass()
        test_obj.my_method()
        assert mock_method.called
        my_function()
        assert mock_function.called如果我打印出my_function()和类型(My_function),它将不会显示模拟函数,而是显示真正的函数。我导入一个类,然后模拟一个方法,但是我直接导入函数,这有关系吗?
发布于 2015-11-10 08:09:24
我遇到了类似的问题。原来我需要给它提供my_function的完整路径:
@patch('home.myuser.myprojects.mymodule.myfunc')
https://stackoverflow.com/questions/33619976
复制相似问题