我正在尝试使用模拟引擎模拟全局变量,但似乎它不仅适用于我的变量。例如,当我修补时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()