1
unittest.mock.create_autospec()
에서 가져온 Mocks는 일부 함수에 대해 인수 검사를 수행하지 않는 것처럼 보입니다. 예를 들어, (나는 CPython 3.4.0
를 사용) 다음 코드를 고려하십시오Python : mock.create_autospec()이 내장 함수에 대한 인수 검사를 수행하지 않습니다.
import os
from unittest.mock import create_autospec
def os_chdir(dir): # The same signature as os.chdir().
pass
m1 = create_autospec(os_chdir)
m1('first', 'second') # Raises TypeError: too many positional arguments.
m2 = create_autospec(os.chdir)
m2('first', 'second') # Passes without an exception...
왜 m1
제대로 인수 수를 확인하지만 m2
하지 않는 이유는 무엇입니까? 동일한 상황은 대화식 세션에서 인쇄 할 때 자신을 built-in function
으로 식별하는 다른 기능입니다. documentation에는 그런 상황이 언급되어 있지 않습니다. 내가 찾은 것과