咨询unittest.mock.patch补丁类与实例属性行为的文档位置
unittest.mock.patch中
create=True参数的相关文档位置 核心说明位置
这个行为的官方说明在unittest.mock.patch的参数定义部分,针对create参数的描述明确了该逻辑:
- 默认情况下,
patch会校验目标对象上是否存在要补丁的属性,若不存在则抛出AttributeError——这就是你尝试补丁test_scratch.A._a(仅为实例属性,类本身无此属性)时触发报错的原因。 - 当设置
create=True时,patch会直接在目标对象上创建指定属性(即使原本不存在),这就支持对实例属性进行补丁操作,或是临时给类添加属性来模拟实例属性的行为。
文档中的具体描述
官方文档里对create参数的正式说明大致如下:
create(bool):默认为False。如果设为True,当要补丁的属性在目标对象上不存在时,patch会创建该属性。此参数适用于补丁实例属性,或是那些在运行时才被动态创建的属性。
内容的提问来源于stack exchange,提问作者Roberto Morávia
相关产品推荐
相关产品推荐

