gpt4 book ai didi

python - MagicMock 和包装

转载 作者:行者123 更新时间:2023-11-28 18:23:09 27 4
gpt4 key购买 nike

为什么“wraps”关键字不能始终对 MagicMock 对象起作用?普通方法传递给包装对象,但不是“特殊”方法。在下面的测试中,第一个断言通过,第二个断言失败。

import mock
import unittest


class Foo(object):
def bar(self):
return 1

def __len__(self):
return 3


class TestWrap(unittest.TestCase):
def test(self):
foo = Foo()
c = mock.MagicMock(wraps=foo)
assert c.bar() == 1 # Passes
assert len(c) == 3 # Fails

我在文档中找不到任何建议。我错过了什么吗?

最佳答案

Because magic methods are looked up differently from normal methods [1], this support has been specially implemented

看来 wraps 功能不会为您包装 __len__ 方法,您必须手动完成。

关于python - MagicMock 和包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43445653/

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