如果side_effect
是一个函数,那么该函数返回的值就是对模拟返回值的调用。使用side_effect
与模拟相同的参数调用该函数。这使您可以根据输入动态地更改调用的返回值:
>>> def side_effect(value):
... return value + 1
...
>>> m = MagicMock(side_effect=side_effect)
>>> m(1)
2
>>> m(2)
3
>>> m.mock_calls
[call(1), call(2)]