在 Python 上模拟全局变量不起作用



我正在尝试使用模拟引擎模拟全局变量,但似乎它不仅适用于我的变量。例如,当我修补时os.name它工作得很好,但是对于我的自定义变量,它不起作用。这是代码:

global_var.py

var = 10

use_global_var.py

from global_var import var

def test_call():
    return var

test.py

import mock
from use_global_var import test_call

@mock.patch('global_var.var', 50)
def test_check():
    print(test_call())
test_check()

如果我理解正确,print应该返回 50,但它返回 10。有谁知道这里的问题是什么以及如何解决?

你没有嘲笑正确的名字use_global_var.test_call正在看use_global_var.var的名字,但你在嘲笑global_var.var

@mock.patch('use_global_var.var', 50)
def test_check():
    print(test_call())
test_check()

最新更新