반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 py 스크립트에서 sys.setdefaultencoding ( "utf-8")을 사용하지 않는 이유는 무엇입니까? (0) | 2020.11.01 |
---|---|
파이썬 차트를 더 크게 만들기 (0) | 2020.11.01 |
파이썬 "OverflowError : Python int가 너무 커서 C long으로 변환 할 수 없음"Windows에서 Mac이 아님 (0) | 2020.11.01 |
파이썬 Python에서 DNS를 확인하는 방법은 무엇입니까? (0) | 2020.11.01 |
파이썬 What is a Python equivalent of PHP's var_dump()? (0) | 2020.11.01 |
댓글