我有一个 python 文件 ( a.py
),它定义了一个函数,以及一个在它的 init 方法中使用它作为默认参数并初始化另一个导入的类的类。这是我的a.py
import OtherClass
def useful_default_func():
//do something useful
class MyClass(object):
def __init__(self, def_func=useful_default_func):
self.other_class = OtherClass(def_func())
//do something useful
我正在尝试useful_default_func
在我的测试文件中模拟。
class TestMyClass(unittest.TestCase):
@patch('a.useful_default_func')
@patch('a.OtherClass')
test_init(self, mock_other_class, mock_default_func):
myc= MyClass()
mock_other_class.assert_called_once_with(mock_default_func)
// further tests
但是,mock_default_func
没有打补丁,我的测试失败了,
Expected: OtherClass(<MagicMock id='xxx'>)
Actual: OtherClass(<function useful_default_func at 0x7f155858b378>)
python 模拟库相当新,所以不太确定,这里发生了什么或者我做错了什么或者我应该如何接近它?