본문 바로가기
파이썬

파이썬 Python 단위 테스트에서 메서드가 호출되었는지 확인

by º기록 2020. 11. 1.
반응형

Python 단위 테스트에 다음 코드가 있다고 가정합니다.

aw = aps.Request("nv1")
aw2 = aps.Request("nv2", aw)

테스트의 두 번째 줄에서 특정 메서드 (제 경우에는 aw.Clear () )가 호출되었다고 쉽게 주장 할 수있는 방법이 있습니까? 예 : 다음과 같은 것이 있습니까?

#pseudocode:
assertMethodIsCalled(aw.Clear, lambda: aps.Request("nv2", aw))

 

해결 방법

 


from mock import patch
from PyQt4 import Qt


@patch.object(Qt.QMessageBox, 'aboutQt')
def testShowAboutQt(self, mock):
    self.win.actionAboutQt.trigger()
    self.assertTrue(mock.called)

귀하의 경우 다음과 같이 보일 수 있습니다.

import mock
from mock import patch


def testClearWasCalled(self):
   aw = aps.Request("nv1")
   with patch.object(aw, 'Clear') as mock:
       aw2 = aps.Request("nv2", aw)

   mock.assert_called_with(42) # or mock.assert_called_once_with(42)

Mock은 객체 또는 모듈을 패치하는 방법, 올바른 것이 호출되었는지 확인하는 방법 등을 포함하여 몇 가지 유용한 기능을 지원합니다.



 

참조 페이지 https://stackoverflow.com/questions/3829742

 

 

반응형

댓글