相关疑难解决方法(0)

如何在python中修补常量

我的项目中有两个不同的模块.一个是包含的配置文件

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 testing unit-testing patch mocking

22
推荐指数
3
解决办法
2万
查看次数

在python @patch装饰器中使用self

我正在尝试使用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)

在这里,补丁抱怨它不知道自己(这是正确的).什么是以干净的方式获得此类功能的最佳方法?

我知道我可以使用全局变量,或者我可以在测试中模拟它(但这涉及我在测试结束时清理对象).

python unit-testing patch mocking

4
推荐指数
1
解决办法
2230
查看次数

标签 统计

mocking ×2

patch ×2

python ×2

unit-testing ×2

testing ×1