1

我曾经使用 Trial 来测试用 Twisted 编写的 TCP 服务器。Trial 是否支持测试 UDP 服务器?

谢谢 !

4

1 回答 1

1

实际上没有文档,但支持。利用

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)
于 2014-08-02T11:25:50.763 回答