2011-06-23 5 views

答えて

1

500エラーは、キャッチされない例外が発生したときにWebアプリケーションがクライアントに返すものです。特定の障害ではありません。予期せぬことが起こったときにユーザーに表示されます。代わりに、ハンドラーをユニットテストして、期待どおりに動作するようにする必要があります。

+0

を渡しはい。このため、getメソッドが呼び出されたときにサーバーエラーをエミュレートし、エラーの処理方法をテストする必要があります。私。例外を渡すためにgetメソッドにエントリポイントが必要です。あるいは、テストの前にTestAppの動作を事前定義しておく必要があります。 – starter

+0

@starterあなたはテストしたいことについて何か明確にする必要があります。 「サーバーエラー」は、キャッチされない例外が発生したときにアプリケーションが返すものです。あなたのアプリがキャッチされていない例外をどのように処理するかをテストしたいですか?特定の場所にスローされた特定の例外をどのように処理するのですか? –

+0

はい。私は特定の場所にスローされた特定の例外を処理する方法と私のアプリがキャッチされない例外を処理する方法をテストしたい。 – starter

3

try exceptループを使用して周りにいました。

try: 
    self.testapp.get('/') 
    self.assertEqual(1, 2, 'GET request should have resulted in a 405 error') # Purposely fail 
except webtest.app.AppError: 
    pass 

もう一つの方法は以下の通りです:

self.assertEqual("500 Internal Server Error", self.testapp.post('/', params={}, expect_errors=True).status, 'POST Request should have resulted in a 500 error') 

どちらの方法は、まだトレースバックが表示される場合がありますが、テストは

関連する問題