मैं इसके लिए मॉक का उपयोग करता हूं (जो अब py3.3 + पर unittest.mock है ):
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)
मॉक काफी उपयोगी सुविधाओं का समर्थन करता है, जिसमें किसी वस्तु या मॉड्यूल को पैच करने के तरीके, साथ ही यह जांचना कि सही चीज़ को बुलाया गया था, आदि।
कैवियट खाली! (सावधान ग्राहक!)
यदि आप गलत तरीके से assert_called_with( assert_called_onceया को assert_called_wiht) अपना परीक्षण अभी भी चला सकते हैं, क्योंकि मॉक यह सोचेगा कि यह एक नकली फ़ंक्शन है और खुशी के साथ, जब तक आप उपयोग नहीं करते हैं autospec=true। अधिक जानकारी के लिए assert_called_once पढ़ें : खतरा या खतरा ।