首页 > 解决方案 > 如何为模拟对象命名?

问题描述

如何unittest.mock设置__name__模拟函数的属性?

我做了以下事情:

func = Mock(name="foo")
print(func.__name__)

散发出AttributeError: __name__

我还尝试创建一个具有__name__属性的自定义对象并将其传递给规范:

class f_mock:
    def __init__(self,name):
        self.__name__ = str(name)

fobj = f_mock("foo")
func = Mock(spec=fobj)
print(func.__name__)

它发出一个TypeError: __name__ must be set to a string object

标签: python

解决方案


试试这个:

mock = MagicMock()
mock.configure_mock(name='my_name')
print(mock.name)
'my_name'

推荐阅读