我已经开始阅读有关模拟库的信息,但还没有完全弄清楚如何将它用作输入值来测试我的同步功能。
我的同步函数从外部源获取多维字典,然后对其进行解析并转换为各种 Django 数据库记录
我勇敢地尝试过:
sync(MagicMock())
但由于模拟返回的值的类型,肯定会直接失败。
所以我认为我最好手动设置一些返回值,我尝试了以下实验:
>>> m = MagicMock()
>>> m['categories'] = [1,2,3]
>>> m['categories'].__class__
<class 'mock.MagicMock'>
>>> m['categories'][0]
<MagicMock name='mock.__getitem__().__getitem__()' id='4557691280'>
还尝试了 return_value
>>> m = MagicMock()
>>> m['categories'].return_value = [1,2]
>>> m['categories']
<MagicMock name='mock.__getitem__()' id='4557733712'>
但是同步函数中的代码需要字典中的整数值......