修补父类

时间:2016-08-13 01:06:36

标签: python python-3.x mocking

我在使用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;语句)但不是类继承。我该如何解决这个问题?

0 个答案:

没有答案