如何创建具有函数特殊(dunder)属性的Mock

2024-05-29 11:16:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些使用函数作为参数的代码,还添加了一些日志记录,其中包括__qualname__,这导致我的单元测试失败,因为我传入的Mock对象为__qualname__引发了一个AttributeError

mock_func = Mock()

此问题的一个简单解决方案是手动将预期属性添加到mock:

mock_func.__qualname__ = "mock_function"

或者在创建时将其添加到模拟的规范中:

mock_func = Moc(["__qualname__"])

但是这些解决方案并不令人满意,因为每当我使用不同的内置属性(例如__name__)时,我都需要更改它们

有没有一种简单的方法来创建一个Mock,它的行为就像一个函数

我找到的最接近的是在错误的存储库中打开的this bug report,和没有回复的this request


Tags: 对象函数代码参数属性记录手动单元测试

热门问题