메서드가 다른 메서드에서 두 번 호출 된 경우 첫 번째 호출로 assert_called_하는 방법은 무엇입니까?

제임스 린

예 : t.py

def a(obj):
  print obj

def b():
  a(1)
  a(2)

그때:

from t import b

with patch('t.a') as m:
  b()
  m.assert_called_with(1)

나는 얻다:

AssertionError: Expected call: a(1)
Actual call: a(2)
Alecxe

가장 간단한 방법은 첫 번째 항목을 가져 와서 다음 mock.call_args_list1같이 호출되는지 확인하는 것입니다 .

call_args_list

이것은 순서대로 모의 객체에 대한 모든 호출의 목록입니다 (따라서 목록의 길이는 호출 된 횟수입니다).

assert m.call_args_list[0] == call(1)

에서 call가져 오는 위치 mock: from mock import call.

또한 mock_calls대신 작동 call_args_list합니다.

또 다른 옵션은 다음을 사용하는 것입니다 assert_any_call().

m.assert_any_call(1)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관