根据传递的参数返回不同值的模拟函数

2024-10-01 00:34:07 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的测试函数中,mock的行为不正常,因为当我mock我的get_config函数时,我只知道如何模拟它以返回一个值。如何向我的mock添加一些逻辑,以便只有当get_config被传递给"restricted"的参数时,模拟才会返回不同的值

def func():
    conf1 = get_config("conf1")
    conf2 = get_config("conf2")
    conf3 = get_config("conf3")
    restricted_datasets = get_config("restricted")
    dataset = get_config("dataset")
    if dataset not in restricted_datas:
        return run_code()

Tags: 函数config参数getdef逻辑mock测试函数
1条回答
网友
1楼 · 发布于 2024-10-01 00:34:07

您可以将函数赋给side_effect,如official doc中所述

from unittest.mock import Mock

def side_effect(value):
    return value

m = Mock(side_effect=side_effect)
m('restricted')
'restricted'

相关问题 更多 >