如何解决如何模拟全局变量中的方法调用
我正在检查 this 试图在模块级变量中分配一个方法调用,目的是只执行一次,但不知道为什么在运行我的任何单元测试之前它会通过所有全局模块的引用,这个问题是我有一个第三方方法,我将它分配给一个全局变量并且失败,因为我试图在第一次通过时执行实际方法,我看到这种行为是相同的用一个简单的本地方法,这里是一个复制它的例子,这是在一个名为
的文件中project_name.app.py
def printing_values():
# this is corrected mocked,as I am using patch in unit test to
# mock this but only available in the context of the test but not
# globally
print('from mocked printing_values method',SSM_VALUE)
return SSM_VALUE
def get_ssm():
return "value_from_method"
# this line will execute get_ssm before any unit test,# how mock this to always have a mock value
SSM_VALUE = get_ssm()
这是我的单元测试
""" response_transformer TESTS """
import unittest
from unittest import mock
import project_name.app
class TestGlobalVariable(unittest.TestCase):
@mock.patch('project_name.app.SSM_VALUE','testing_value')
def test_success_response_global_variable(self):
response = project_name.app.printing_values()
assert response == "testing_value"
所以我想模拟 SSM_VALUE 但不执行与之关联的 get_ssm 方法,我应该如何实现?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。