【问题标题】:monkey patching an import in python before a test starts [duplicate]猴子在测试开始之前修补python中的导入[重复]
【发布时间】:2020-11-25 07:55:54
【问题描述】:

我正在尝试使用pytest 编写单元测试,而我正在测试的类是import 是另一个库的类型,该库在导入期间打开了一个套接字。该类型本身非常简单,它只实现了__call__ 并返回一个易于模拟的plain-old-python-object。

有没有办法可以对导入进行猴子修补,以便在我的测试开始之前不会调用真正的 python 文件?

【问题讨论】:

  • 我试试,如果解决了这个问题,我会把它标记为重复。谢谢。

标签: python pytest monkeypatching


【解决方案1】:

您可以使用mock.patch 模拟来自任何模块的任何属性。

例如,要模拟来自模块module1 的属性名称type,只需将其添加到单元测试文件的顶部

from unittest.mock import patch
patch('module1.type')

如果您只想为一个测试用例模拟该模块属性,请使用补丁作为装饰器

from unittest.mock import patch

@patch('module1.type')
def test1(...):
    ...

【讨论】:

    猜你喜欢
    • 2019-03-29
    • 2015-03-23
    • 2013-12-26
    • 1970-01-01
    • 2016-11-23
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多