gpt4 book ai didi

python - 如何为模拟对象命名?

转载 作者:行者123 更新时间:2023-12-01 07:37:33 24 4
gpt4 key购买 nike

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__必须设置为字符串对象

最佳答案

为什么不直接在模拟上设置__name__

func = Mock()
func.__name__ = 'foo'
print(func.__name__)

正如 Ghassen 在他的回答中提到的那样,您还可以使用 configure_mock,它出于所有意图和目的实现了相同的目的,但如果您想批量配置多个属性和/或属性,它可能会更好您的模拟实例,因为您可以将所有内容放入字典中,并将其解压缩为函数参数。例如,

my_config = {'__name__': 'foo', 'other_property': 'bar'}
mock.configure_mock(**my_config)

同样,根据测试替身的目的,我建议仅使用实现您目标的最简单的解决方案。

关于python - 如何为模拟对象命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56914683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com