twisted.web.client.Agent を使用して HTTP リクエストを行うコードを単体テストする方法を示すヒントや例を探しています。
テストで実際のエージェントを使用し、StringTransport (実際の TCP 接続なし) を使用して偽の HTTP サーバーに接続するように構成することは可能ですか?
それとも、エージェントをモックアウトして、エージェントを使用するクラスにモックを注入する方がよいでしょうか?
twisted.web.client.Agent を使用して HTTP リクエストを行うコードを単体テストする方法を示すヒントや例を探しています。
テストで実際のエージェントを使用し、StringTransport (実際の TCP 接続なし) を使用して偽の HTTP サーバーに接続するように構成することは可能ですか?
それとも、エージェントをモックアウトして、エージェントを使用するクラスにモックを注入する方がよいでしょうか?
実際の を使用することは確かに可能Agent
です。Agent
最初の引数としてリアクタを使用してインスタンスを構築する必要があります。そのため、 などの偽のリアクターを提供できますMemoryReactor
。これは、何Agent
が行われているかを理解するのに非常に便利な方法ですが、実際には、それ自体をテストするのに役立ちAgent
ます。フェイクの注入はAgent
、そのAPIが浅い(ほとんどすべてが通過しAgent.request
、単純である(を返すIResponse
)ため)ため、何度も簡単な方法です。