키보드 import *를 사용하여 다른 모듈 keyboard.py에서 함수를 가져 오는 모듈 test.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)
당신이 볼 수 있듯이, 난
내부의 두 가지 기능이 있습니다 keyboard.py 두 모의 반환 값을 제 위치에 넣으려고합니다.
그러나 그 효과는 거꾸로 보입니다!
중단 점에서 중단 된 상태에서 대화식 콘솔에서 호출하거나 정상적으로 호출되었을 때 값을 검사하면 두 개의 조롱 된 함수가 서로의 가짜 반환 값을 반환합니다. 콘솔에서
: 테스트 함수에 전달되는
get_keys()
Out[2]: [['wait_keys!', 0.1]]
wait_keys()
Out[3]: [['get_keys!', 0.1]]
오전 나는 모의 인수의 순서에 대해 뭔가 오해?
test.get_keys가 아닌 keyboard.get_keys에 패치를 적용 할 수 있습니까?
감사합니다. Louise
아하! 확인해 주셔서 감사합니다. :) – Louise