我正在使用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
。