我曾经使用 Trial 来测试用 Twisted 编写的 TCP 服务器。Trial 是否支持测试 UDP 服务器?
谢谢 !
实际上没有文档,但支持。利用
twisted.test.proto_helpers.FakeDatagramTransport
这是来自UDPTutorial的 Echo Server 测试。
from twisted.trial import unittest
from twisted.test import proto_helpers
import echo
class EchoTest(unittest.TestCase):
def setUp(self):
self.protocol = echo.Echo()
self.transport = proto_helpers.FakeDatagramTransport()
self.protocol.transport = self.transport
def test_echo(self):
self.protocol.startProtocol()
self.assertTrue(len(self.transport.written) == 0)
# simulate incoming package
self.protocol.datagramReceived("test", ("127.0.0.1", 55555))
# check echo has been written as answer on the transport
msg, addr = self.transport.written[0]
self.assertEqual(msg, "test")
self.assertEqual(addr[1], 55555)