4

サーバーエラー用のハンドラーを作成し、ルートurls.pyで定義します。handler500='myhandler'そして、それがどのように機能するかをテストするためのunittestを作成します。テストでは、エラーのあるビューを記述し、テストURL構成で定義します。ブラウザーでこのビューにリクエストを送信すると、ハンドラーが表示され、ステータスコード500を受け取りますが、このビューにリクエストを送信するテストを起動すると、スタックトレースと私のテストは失敗しました。unittestsでhandler500をテストするためのアイデアはありますか?

4

1 に答える 1

3

ここでやりたいのは統合テストです。ユニットテストはそれに適したツールではありません。

Djangoには、 Seleniumなどの有名なライブブラウザテストツールの使用のサポートが含まれています。

ご指摘のとおり、特定のケースでは、Seleniumを使用してページのステータスコードを取得するのは実際にはかなり複雑なので、より単純なアプローチを使用することをお勧めします。

  1. 使うLiveServerTestCase
  2. requestsテストページにアクセスするなどのPythonHTTPクライアントを使用します
  3. テストページでHTTP500エラーが生成されることを確認します
  4. テストページに期待されるコンテンツが含まれていることを確認します。

テストページでJSをテストする場合は、ステータスをテストするリクエストと組み合わせて、その部分にSeleniumを使用します。

于 2012-10-07T11:18:45.717 に答える