属性 模拟单元测试的副作用是什么?

What is the equivalent of side effect for a property mock in unit test?

我想按顺序模拟 属性 到 return 不同的值,就像在 Magic Mock 上使用 side_effect 一样。现在我正在这样做:

mock = <my magic mock here>
type(mock).information = PropertyMock()
type(mock).information.side_effect = [1,2]

mock.information # it does not return 1
mock.information # it does not return 2

知道如何正确模拟它吗?

from unittest.mock import MagicMock, PropertyMock

m = MagicMock()
type(m).foo = PropertyMock(side_effect=[1, 2])

print(m.foo) # 1
print(m.foo) # 2