[python] 모의 대 MagicMock


Answers

Mock을 사용하면 마법 방법을 모방 할 있지만 정의해야합니다. MagicMock에는 "대부분의 마법 방법의 기본 구현"이 있습니다. .

어떤 마법 방법을 테스트 할 필요가 없다면, Mock은 적당하고 테스트에 많은 불필요한 것들을 가져 오지 않습니다. MagicMock을 사용하면 많은 마법 메서드를 테스트해야한다면 시간을 절약 할 수 있습니다.

Question

나의 이해는 MagicMock 이 자동으로 "마법 방법"을 수행하여리스트, 반복 등을 완벽하게 지원하는 Mock 의 수퍼 셋 (superset)이라는 것입니다. 그렇다면 일반 Mock이 존재하는 이유는 무엇입니까? 실제로 무시할 수있는 MagicMock 버전을 그냥 제거하지 않았습니까? Mock 클래스는 MagicMock 에서 사용할 수없는 트릭을 알고 있습니까?




이것은 파이썬의 공식 문서가 말하는 것입니다 :

이 예제의 대부분에서 Mock과 MagicMock 클래스는 서로 바꿔 사용할 수 있습니다. MagicMock은 더 유능한 클래스이므로 기본적으로 사용할 수있는 합리적인 클래스입니다.




Links