19

HTTP サーバーとして実行されるアプリケーションの一部の単体テストを作成しています。私が試みてきたアプローチは、HTTP サーバーを含むモジュールをインポートして開始することです。次に、単体テストは urllib2 を使用して接続し、データを送信し、応答を確認します。

私たちの HTTP サーバーは Twisted を使用しています。ここでの 1 つの問題は、私が Twisted にあまり詳しくないことです :)

ここで、HTTP サーバーをインスタンス化し、setUp() メソッドで開始してから、tearDown() メソッドで停止します。

問題は、Twisted がこれを好まないようで、単体テストを 1 つしか実行しないことです。最初のものの後、原子炉はもう起動しません。

検索して検索して検索しましたが、意味のある答えが見つからないようです。

私は完全に間違ったアプローチをとっていますか、それとも明らかな何かが欠けているだけですか?

4

4 に答える 4

18

ここにいくつかの情報があります:トライアルを使用してツイストコードのテストを書く

また、トライアルコマンドの-helpも確認する必要があります。試用版にはたくさんの良いものがあります!ただし、非同期アプリケーションでテストを行うのは必ずしも簡単ではありません。幸運を!

于 2009-10-16T01:12:36.513 に答える
7

Twisted内のユニットテストでは、TwistedTrialを使用することになっていると思います(これはコアコンポーネントです。つまり、twisted /trialディレクトリにTwistedtarballが付属しています)。ただし、私が指摘したURLにあるように、ドキュメントは主にソース(TrialでもテストされているさまざまなTwistedプロジェクトのソースを含む)を調べることによって作成されます。

于 2009-10-16T01:09:02.527 に答える
3

Twistedには既知のバグがあり(おそらく修正されないでしょう)、reactorを再起動するとクラッシュが発生します。

これが、ユニットテストが機能しない理由です。

Trialを使用するだけでなく、クライアントのようにHTTPサーバーと通信する個別のテストシステムを検討することもできます。

  • Webdriver-サイト周辺でブラウザセッションを駆動するためのAPI。
  • TestGen4Web-サイトとのやり取りを記録し、再生できるFirefoxプラグイン。
于 2009-10-16T01:30:33.950 に答える