我在使用mock.patch
嘲笑父类时遇到了问题。
这是一个测试用例:
在parent.py
:
import mock
class Parent():
def __init__(self):
print("Original recipe")
在child.py
:
from parent import Parent
class Child(Parent):
def foo(self):
print('Parent is {}'.format(Parent))
在test.py
:
import mock
from child import Child
c = Child() # expect 'Original recipe'
c.foo()
with mock.patch('child.Parent'):
c = Child() # expect silence
c.foo()
当我运行test.py
时,我希望得到:
Original recipe
Parent is <class 'parent.Parent'>
Parent is <MagicMock name='Parent' id='4325705712'>
但我得到了:
Original recipe
Parent is <class 'parent.Parent'>
Original recipe
Parent is <MagicMock name='Parent' id='4325705712'>
所以修补程序正在发生(来自&#34; Parent是&#34;语句)但不是类继承。我该如何解决这个问题?