Python 如何模拟一个';是从getattr返回的吗?

Python 如何模拟一个';是从getattr返回的吗?,python,mox,Python,Mox,我有一个类,它的功能如下: class MyClass(object): def __init__(self, delegate_to): self._delegate_to = delegate_to def __getattr__(self, item): return getattr(self._delegate_to, item) my_mock = self.mox.CreateMock(MyClass) my_mock.f().An

我有一个类,它的功能如下:

class MyClass(object):
    def __init__(self, delegate_to):
        self._delegate_to = delegate_to

    def __getattr__(self, item):
        return getattr(self._delegate_to, item)
my_mock = self.mox.CreateMock(MyClass)
my_mock.f().AndReturn(None)
但当我尝试做一些事情时,比如:

class MyClass(object):
    def __init__(self, delegate_to):
        self._delegate_to = delegate_to

    def __getattr__(self, item):
        return getattr(self._delegate_to, item)
my_mock = self.mox.CreateMock(MyClass)
my_mock.f().AndReturn(None)
mox错误与:

UnknownMethodCallError: Method called is not a member of the object: f
如何模拟委派的呼叫?

很有技巧,但请尝试:

class MyMock(MyClass):
    def f():
        pass
然后在测试中:

my_mock = self.mox.CreateMock(MyMock)
my_mock.f().AndReturn(None)