1

嗨,我是 Twisted 的新手,我想将它用作我的客户端/服务器升级。

我有一个做一些单元测试的软件,我想添加 Twisted。

有 2 台计算机 1 台用于控制测试(客户端)和 1 台用于测试特定单元(服务器)

对于服务器部分,使用 twisted 没有问题。因为在激活反应器时,服务器正在侦听并等待来自客户端的请求。

在客户端部分我有一些问题。

盯着客户的时候

反应堆.run()

软件进入事件驱动模式并等待事件......(连接,发送......)问题是我想做很多事情,而不仅仅是看我的交流。

可以说我有一个功能:

电压 = self.UnitTest.GetVoltage()

如果电压…………

当前 = self.UnitTest.GetCurrent()

如果当前......

我希望 UnitTest 方法将他们的请求发送到扭曲的客户端,这可能吗?

4

1 回答 1

1

If it's for testing , have a look to the documentation: unit test with trial

to write your test you can do on the classic way of callback:

from twisted.internet import defer

class SomeWarningsTests(TestCase):
    def setUp(self):
        #init your connection , return the deferred that callback when is ready
    def tearDown(self):
        # disconnect from the server
    def getVoltage(self):
        #connect to you serveur and get the voltage , so return deferred
    def test_voltage(self):
        def testingVoltage(result):
             if not result:
                  raise Exception("this not normal")
             return result
        return self.getVoltage.addCallback(testingVoltage)

    #other way
    def getCurrent(self):
        #connect to you serveur and get the current(?) , so return deferred

    @defer.inlineCallbacks
    def test_current(self):
        current = yield self.getCurrent()
        if not current:
            raise  Exception("this not normal")
        defer.returnValue(current)
于 2013-09-02T08:29:59.467 回答