我正在尝试使用模拟引擎来模拟全局变量,但它似乎并不仅仅适用于我的变量。当我修补例如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。
有谁知道这里有什么问题以及如何解决它?
答案 0 :(得分:3)
您没有嘲笑正确的名称。 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()