내가 샘플 코드의 다음 부분에서 작업 mock.patch를 얻기 위해 노력하고 있어요에서 import 문 :에서 모의 패치/파이썬
d: defaultdict(None, {})
가 어떤 의미 :
from mock import patch
from collections import defaultdict
with patch('collections.defaultdict'):
d = defaultdict()
print 'd:', d
이 기능은 다음 출력 그 defaultdict는 패치되지 않았습니다.
나는 그것이 작동 직선 import 문으로에서/가져 오기 문을 교체하는 경우 :from mock import patch
import collections
with patch('collections.defaultdict'):
d = collections.defaultdict()
print 'd:', d
출력은 다음과 같습니다/수입에서 사용하여 전화를 패치 할 수있는 방법이
d: <MagicMock name='defaultdict()' id='139953944084176'>
있습니까? 당신이 가져온 모듈에 대한 뭔가를 조롱하는 경우
from mock import patch
from collections import defaultdict
with patch('__main__.defaultdict'):
d = defaultdict()
print 'd:', d
그러나, 당신이 원하는 것 : 동일한 모듈에 뭔가를 패치하는 경우가 __main__
사용할 수
'from X import Y' 또는'X.Y import '를 사용하는지 여부에 대한 구현 세부 사항을 변경하면 단위 테스트가 조용하게 매우 다르게 작동하기 시작하지 않습니다. – detly
@detly : 나는 그것이 사실이라는 것을 믿습니다.하지만 저는 모의에 익숙하지 않아서 경험으로 말할 수는 없습니다. – BrenBarn
@detly 예, 맞습니다. – Daenyth