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)
如果您错误地输入assert_called_with(到assert_called_once或assert_called_wiht),那么您的测试可能仍然在运行,因为Mock会认为这是一个模拟函数,并且很高兴继续,除非您使用autospec=true。有关详细信息,请阅读assert_called_once: Threat or Menace。
我不知道有什么内在的东西。实现起来相当简单:
这要求对象本身不会修改self.b,这几乎总是正确的。
是的,如果您使用的是Python3.3+。您可以使用内置的^{} 来断言调用的方法。对于Python 2.6+使用滚动后台端口^{} ,这是相同的事情。
下面是一个简单的例子:
我使用Mock(现在是py3.3上的unittest.mock)来实现:
对于您的情况,可能是这样的:
Mock支持很多有用的特性,包括修补对象或模块的方法,以及检查是否调用了正确的对象等
Caveat emptor!(买家当心!)
如果您错误地输入
assert_called_with
(到assert_called_once
或assert_called_wiht
),那么您的测试可能仍然在运行,因为Mock会认为这是一个模拟函数,并且很高兴继续,除非您使用autospec=true
。有关详细信息,请阅读assert_called_once: Threat or Menace。相关问题 更多 >
编程相关推荐