如何模拟/修补没有返回值即可更改参数值的函数?

时间:2019-05-09 19:39:29

标签: python unit-testing mocking

说我有一个功能

def change_dict_value(abc):
  # doing a lot of calculations here
  # and finally generate a new dictionary efg
  abc.update(efg)

在通过change_dict_value处理后,如何模拟/修补该函数以设置abc的返回值?

1 个答案:

答案 0 :(得分:2)

您可以使用side-effect this

def mock_change_dict_value(abc):
    # Change abc
    abc.update(efg)

然后您可以像这样使用它:

>>> mock = Mock()
>>> mock.side_effect = mock_change_dict_value
>>> mock()