gpt4 book ai didi

python - 使用 Mock.side_effect 作为实例方法

转载 作者:行者123 更新时间:2023-12-02 10:00:28 26 4
gpt4 key购买 nike

我正在尝试在 Python 中模拟具有副作用的实例方法。我希望/期望使用初始“​​self”参数来调用我的副作用,我可以用它来确定返回值。

所以我有这样的东西:

import mock

class TestCases(unittest.TestCase):

@mock.patch('Item.exists')
def test_foo(self, mock_item_exists):

def item_exists_side_effect(*args, **kwargs):
# I expect args[0] here to be supplied and to refer to the item
_self = args[0]
return _self.name == 'bar'

mock_item_exists.side_effect = item_exists_side_effect

...

但是,当调用 Item.exists() 时,我最终会进入副作用函数,但参数列表为空。

这是预期的吗?我做错了什么吗?

最佳答案

看起来原因是这样的:

Why does mock ignore the instance/object passed to a mocked out method when it is called?

即通过调用mock.patch,我将实例方法变成了类方法。

关于python - 使用 Mock.side_effect 作为实例方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32529934/

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