【发布时间】:2021-02-25 10:50:55
【问题描述】:
我正在使用 MagicMock 创建一个模拟对象并使其表现得像这样的字典:
>>> from unittest import mock
>>> m = mock.MagicMock()
>>> d = {'foo': 'bar'}
>>> m.__getitem__.side_effect = d.__getitem__
>>> m['foo']
'bar'
>>> m.get('foo')
<MagicMock name='mock.get()' id='140668601658096'>
如何使用 get 方法获取 bar 值?
【问题讨论】:
-
加
m.get.side_effect = d.get? -
这有什么意义?你在做什么,你认为嘲笑 dict 可以解决这个问题?除此之外,@rdas 是正确的,MagicMock 除了返回子模拟之外没有其他行为。您必须处理的任何行为分歧。
-
@Masklinn 我的代码中有一个字典对象正在使用 get 方法,我需要模拟它的值,而 get.return_value 没有完成。
标签: python python-3.x python-unittest