【发布时间】:2018-04-13 00:33:27
【问题描述】:
我有一个测试模块 (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]]
为什么我的模拟补丁以错误的顺序出现?
【问题讨论】:
标签: python mocking python-unittest python-mock