如何模拟属性以引发异常



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

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

  • 如果访问my_property del my_mock.my_property会导致AttributeError,但我需要一个TypeError.
  • my_mock.my_property = MagicMock(side_effect=TypeError)调用my_property时会导致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

相关内容

  • 没有找到相关文章

最新更新