gpt4 book ai didi

python-3.x - 模拟具有不同返回值的相同方法

转载 作者:行者123 更新时间:2023-12-04 09:54:09 25 4
gpt4 key购买 nike

我要补丁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):


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

最佳答案

这可以使用 side_effect 来实现参数为 patch.object调用一个函数,该函数根据输入返回不同的结果。例如:

def find_ages(*args):
if args[0] == 'Anna':
# Return Anna's data
return 18
elif args[0] == ' Ben':
# Return Ben's data
return 45

@patch.object(get_ages, 'get_age', side_effect=find_ages)
def test_get_ages(self, get_age):

关于python-3.x - 模拟具有不同返回值的相同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61960607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com