【发布时间】:2015-11-23 10:40:39
【问题描述】:
我是 Python 的新手,我对 Python 中的 mockito 有疑问。
我的生产代码如下所示:
from stompest.config import StompConfig
from stompest.sync import Stomp
class Connector:
def sendMessage(self):
message = {'message'}
dest = '/queue/foo'
def _send(self, message='', dest=''):
config = StompConfig(uri="tcp://localhost:61613")
client = Stomp(config)
client.connect()
client.send(body=message, destination=dest,
headers='')
client.disconnect()
如您所见,我想使用 Stomp 协议发送消息。在我的测试中,我想测试一下,当我从 Connector 类调用发送方法时,来自 Stompest 库的发送方法只会被调用一次。
我的单元测试如下:
from Connector import Connector
import unittest
from mockito import *
import stompest
from stompest.config import StompConfig
from stompest.sync import Stomp
class test_Connector(unittest.TestCase):
def test_shouldInvokeConnectMethod(self):
stomp_config = StompConfig(uri="tcp://localhost:61613")
mock_stomp = mock(Stomp(stomp_config))
connector = Connector()
connector.sendMessage()
verify(mock_stomp, times=1).connect()
当我在调试模式下运行测试时,我看到实例 connect() 的方法被调用并且方法也被发送,但作为测试的结果,我得到:
Failure
Traceback (most recent call last):
File "C:\development\systemtest_repo\robot_libraries\test_Connector.py", line 16, in test_shouldInvokeConnectMethod
verify(mock_stomp, times=1).connect()
File "C:\Python27\lib\site-packages\mockito\invocation.py", line 111, in __call__
verification.verify(self, len(matched_invocations))
File "C:\Python27\lib\site-packages\mockito\verification.py", line 63, in verify
raise VerificationError("\nWanted but not invoked: %s" % (invocation))
VerificationError:
Wanted but not invoked: connect()
我做错了什么?
【问题讨论】:
标签: python python-2.7 unit-testing