2016-09-15 5 views
0

메소드에서 b() 함수가 호출되는지 어떻게 확인합니까?메서드에서 함수를 호출하고 있는지 확인하려면 어떻게합니까?

class hello(): 
    delete(): 
     b() 

단위 테스트에서 모의를 사용하고 싶습니다.

+0

를? 'b'를 수정할 수 있습니까? 아니면 그것을 monkeypatch? 실제로 [커버리지] (https://docs.python.org/devguide/coverage.html)를 묻는 중입니까? – zvone

+0

b를 수정할 수 없습니다. hello()가 특정 인수와 함께 호출 될 때 호출되는지 확인해야합니다. –

+0

[unittest.mock] (https://docs.python.org/3/library/unittest.mock.html) 문서를 읽고이 작업을 수행하는 방법을 확인 했습니까? 메소드를 조롱하고 메소드가 호출되는지 확인하는 방법에 대한 몇 가지 예가 있습니다. 이미 시도한 적이 있다면 코드를 공유하여 올바른 방향으로 안내 할 수 있습니다. – idjaw

답변

0

개체를 조롱하는 방법을 찾고있는 경우 this 일 수 있습니다.

질문의 첫 번째 부분에 대답하려면 실제로 발신자 기능에 대한 정보를 얻는 방법이 있습니다. This는 화재까지 파이썬에서 당신이 할 수있는 테스트 환경 (또는 Ipython) 쉘을 가지고 있고 함수를 호출하기 위해 디버거를 사용한다고 가정하면

0

도움이 될 :이 함수의 경우

def multiplier(a,b): 
    print a*b 

그런 다음 셸에서이 작업을 수행하고 코드를 디버깅 할 수 있습니다 : 당신의 제약 조건은 무엇

import ipdb 
ipdb.runcall(multiplier, 10, 10) 
관련 문제