【发布时间】:2015-08-23 13:04:16
【问题描述】:
我想创建一个模拟方法来调用被模拟的底层方法。
我在想像下面这样的事情,但我找不到任何关于持有对被模拟对象的引用的模拟对象的文档,我在下面将其表示为[[wrapped_method_foo]]:
from mock import patch
class Foo(object):
def __init__(self, state):
self.state = state
def foo(self, a):
print "real foo", a
return a + self.state
f = Foo(2000)
f.foo(1)
with patch.object(Foo, 'foo', autospec=True) as mock_foo:
def side_effect(self, a):
print "mock foo", a
return mock_foo.[[wrapped_method_foo]](self, a*2)
mock_foo.side_effect = side_effect
f.foo(2)
【问题讨论】:
标签: python unit-testing mocking python-mock