【问题标题】:How to mock out a function that's returned from getattr?如何模拟从 getattr 返回的函数?
【发布时间】:2012-06-04 18:32:15
【问题描述】:

我有一个类做这样的事情:

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

如何模拟委托调用?

【问题讨论】:

    标签: python mox


    【解决方案1】:

    Hacky,但请尝试:

    class MyMock(MyClass):
        def f():
            pass
    

    然后在测试中:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 2019-06-15
      • 2013-11-04
      • 2021-05-13
      • 1970-01-01
      相关资源
      最近更新 更多