擅长:python、mysql、java
<p>这与mike所说的类似,但尝试测试响应处理。还有其他的方法,但我喜欢这样。我也同意,测试wrap代理的东西并没有太大帮助,测试协议/在协议中保持逻辑可能更好,但有时您只想添加一些绿色标记。在</p>
<pre><code>class MockResponse(object):
def __init__(self, response_string):
self.response_string = response_string
def deliverBody(self, protocol):
protocol.dataReceived(self.response_string)
protocol.connectionLost(None)
class MockAgentDeliverStuff(Agent):
def request(self, method, uri, headers=None, bodyProducer=None):
d = Deferred()
reactor.callLater(0, d.callback, MockResponse(response_body))
return d
class MyWrapperTestCase(unittest.TestCase):
def setUp:(self):
agent = MockAgentDeliverStuff(reactor)
self.wrapper_object = MyWrapper(agent)
@inlineCallbacks
def test_something(self):
response_object = yield self.wrapper_object("example.com")
self.assertEqual(response_object, expected_object)
</code></pre>