테스트할 때 함수의 콜 횟수 체크하기

최대 1 분 소요

~.call_count

찾아보거나 알게된 배경

함수를 patch 해서 mock으로 사용할 때, 특정 함수의 호출 횟수가 원하는 만큼 호출되는지 알고 싶었음


요약

~.call_count를 사용하자


내용

  • assert_called 는 호출했는지만 확인하여, 탈락
  • assert_called_once는 1번만 호출했는지 확인하여 탈락
  • assert_not_called는 호출하지 않았는지만 확인하여 탈락
  • 방법이 없을까 하면서, 해당 함수 구현부를 확인해보니, call_count라는 녀석을 가지고 호출여부를 판단하고 있었음. call_count
  • python에서 외부에 노출하고 싶지 않는 변수나 메서드들은 _를 prefix로 가져가는데, 해당 변수는 해당사항이 없으므로, 가져다가 사용함.

참고자료

NonCallableMock in unittest.mock의 소스코드