我正在尝试使用嘲讽的名称创建MagicMock,它似乎不起作用,但适用于其他属性:
Partial_sort_copy
如何使用MagicMock模拟名称属性?
答案 0 :(得分:1)
名称属性在创建期间不能被模拟,因为它具有特殊含义:
name:如果该模拟具有名称,则它将在该模拟的代表中使用。这对于调试很有用。该名称将传播到子模拟。
因此,为了模拟名称,应在创建MagicMock之后并将其向前传递之前进行设置:
from unittest.mock import MagicMock
# Works
assert MagicMock(foo='bar').foo == 'bar'
# Don't work
assert MagicMock(name='bar').name == 'bar'
print(MagicMock(name='bar').name)
<MagicMock name=\'bar.name\' id=\'140031146167376\'>