我正在寻找说明如何对使用twisted.web.client.Agent 发出HTTP 请求的代码进行单元测试的提示或示例。
是否可以在测试中使用真正的代理并将其配置为使用 StringTransport 连接到假 HTTP 服务器(没有真正的 TCP 连接)?
还是模拟出代理并将模拟注入使用代理的类更好?
我正在寻找说明如何对使用twisted.web.client.Agent 发出HTTP 请求的代码进行单元测试的提示或示例。
是否可以在测试中使用真正的代理并将其配置为使用 StringTransport 连接到假 HTTP 服务器(没有真正的 TCP 连接)?
还是模拟出代理并将模拟注入使用代理的类更好?
当然可以使用真实的Agent
. Agent
您必须使用反应器作为第一个参数来构造实例;因此,您可以提供一个假反应器,例如MemoryReactor
. 尽管这是了解正在做的事情的一种非常方便的方法Agent
,但它实际上主要用于测试Agent
自身。注入一个假Agent
的很多时候是一条更容易的路线,因为它的 api 既浅(几乎所有东西都通过Agent.request
并且简单(它返回一个IResponse
)