我的项目中有两个不同的模块.一个是包含的配置文件
LOGGING_ACTIVATED = False
Run Code Online (Sandbox Code Playgroud)
这个常量用在第二个模块中(让我们称之为main),如下所示:
if LOGGING_ACTIVATED:
amqp_connector = Connector()
Run Code Online (Sandbox Code Playgroud)
在我的主模块的测试类中,我想用该值修补此常量
True
Run Code Online (Sandbox Code Playgroud)
不幸的是,以下不起作用
@patch("config.LOGGING_ACTIVATED", True)
Run Code Online (Sandbox Code Playgroud)
这也不起作用:
@patch.object("config.LOGGING_ACTIVATED", True)
Run Code Online (Sandbox Code Playgroud)
有人知道如何修补不同模块的常量吗?
我正在尝试使用python的mock.patch来实现带鼻子的单元测试.
class A:
def setUp(self):
self.b = 8 #contrived example
@patch.object('module.class', 'function', lambda x: self.b)
def testOne(self):
# do test #
Run Code Online (Sandbox Code Playgroud)
在这里,补丁抱怨它不知道自己(这是正确的).什么是以干净的方式获得此类功能的最佳方法?
我知道我可以使用全局变量,或者我可以在测试中模拟它(但这涉及我在测试结束时清理对象).