我如何模拟 属性 来引发异常?

How can I mock a property to raise an exception?

我在 Python 2.7 中使用 MagicMock 来模拟对象。我正在模拟的 类 之一具有属性,在某些情况下其中之一可以引发 TypeError

我想嘲笑这种行为,但我不知道如何:

我该怎么做?

您可以使用 PropertyMock 来达到这个目的:

import mock

class A(object):

    @property
    def prop(self):
        pass

a = A()
type(a).prop = mock.PropertyMock(side_effect=TypeError)

如果您现在访问 a.prop,它将引发 TypeError