使用side_effect模拟python属性

时间:2019-01-30 13:22:29

标签: python-3.x python-unittest

当我使用mock.return_value.method.side_effect = [1, 2]时。

效果很好。 我进入每个通话1,然后进入下一个通话的2

但是,如何为属性做呢?

我使用object.text = "some-text"。和工程。但是我需要属性text的side_effect。有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用PropertyMock对象来实现。将它附加到您的Mock上必须与正常情况有所不同。这是一个示例:

from mock import Mock
from mock import PropertyMock

object = Mock()
type(object).attribute = PropertyMock(side_effect=[1, 2])

print object.attribute
print object.attribute