模拟具有不同返回值的相同方法

时间:2020-05-22 17:26:05

标签: python-3.x python-unittest.mock

我想根据传递的参数来修补get_age()的方法。

比方说,我在get_age.py处多次使用同一get_age()方法。

get_age("Anna")
...
get_age("Ben")

然后在测试中我想做:

@patch('get_ages.get_age') <-- mock getting age of Ben
@patch('get_ages.get_age') <-- mock getting age of Anna
def test_get_ages(self, age_A, age_B):

如何根据传递的名称模拟相同的方法?谢谢!

1 个答案:

答案 0 :(得分:2)

这可以通过使用side_effect的{​​{1}}参数来调用一个函数来实现,该函数根据输入返回不同的结果。例如:

patch.object