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

时间:2017-01-28 22:53:30

标签: python mocking

我正在尝试使用模拟引擎来模拟全局变量,但它似乎并不仅仅适用于我的变量。当我修补例如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。 有谁知道这里有什么问题以及如何解决它?

1 个答案:

答案 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()