为什么我的Python模拟补丁以错误的顺序出现?
|
我有一个模块test.py,它使用键盘导入*从另一个模块keyboard.py导入函数. 在keyboard.py里面有两个功能: def get_keys(keyList,timeStamped):
return event.getKeys(keyList=keyList,timeStamped=timeStamped)
def wait_keys(keyList,timeStamped):
return event.waitKeys(keyList=keyList,timeStamped=timeStamped)
现在,我在test.py中的测试函数如下所示: @mock.patch('keyboard.wait_keys')
@mock.patch('keyboard.get_keys')
def test_2(self,mock_waitKeys,mock_getKeys):
mock_waitKeys.return_value = [['wait_keys!',0.1]]
mock_getKeys.return_value = [['get_keys!',0.1]]
run_blocks(trials,noise,win,expInfo,incorrect,tone1,tone2,experiment_details,allPoints,32,60)
正如您所看到的,我正在尝试将两个模拟返回值放在适当的位置. 然而,他们的影响似乎是倒置的! 当我在交互式控制台中调用它们而在断点处停止时(或在正常调用时检查值),两个模拟函数返回彼此的假返回值! 从控制台: get_keys() Out[2]: [['wait_keys!',0.1]] wait_keys() Out[3]: [['get_keys!',0.1]] 我是否误解了传递给测试函数的模拟参数的顺序? 这可能与修补keyboard.get_keys而不是test.get_keys有关吗? 谢谢! 解决方法补丁的顺序应该颠倒,因为它们是自下而上应用的.在嵌套模拟参数的 python docs中查看此注释:
(编辑:东莞站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- python-2.7 – 无法安装PythonMagick Windows 7
- python – web2py插入方法
- Python’的奇怪行为是’运算符,如果与’in’结合使用[复制]
- django – 必须使用对象pk或slug调用通用详细信息视图
- python – Opencv Homography矩阵H和Inverse H转换点没有得
- python – ElementTree find()/ findall()找不到带命名空间
- python – 在REST框架中返回字典而不是数组
- python – plotly.offline.iplot给出一个大的空白字段作为输
- 使用Django Crispy Forms渲染单独的MultiWidget字段
- python – PySide GUI中的应用程序图标
