ホームページ >バックエンド開発 >Python チュートリアル >竜巻エラー例外の解決策 (\'予期した例外を取得できませんでした\')

竜巻エラー例外の解決策 (\'予期した例外を取得できませんでした\')

WBOY
WBOY転載
2024-02-29 21:55:32655ブラウズ

竜巻エラー例外の解決策 (\予期した例外を取得できませんでした\)

#エラーの理由

"Except

ion("Did not get ExpectedException")" in python tornado が表示される理由は次のとおりです。tornado の Testframework を単体テストに使用する場合、予期した例外がスローされない場合にこのエラーが発生します。プログラムが期待どおりに動作していないか、例外がキャッチされてテスト フレームワークに渡されていない可能性があります。

解決方法

この問題を解決するにはいくつかの方法があります:

プログラムが期待どおりに実行されていることを確認してください。コードが正しいかどうか、例外がスローされない抜け穴がないかどうかを確認してください。

例外がキャッチされないことを確認してください。プログラムでは、例外はテスト フレームワークに渡されずにキャッチされます。テスト コードに例外をキャッチするステートメントがないことを確認してください。

Tornado の AsyncTestCase.assertR

aises() メソッドを使用して、例外がスローされたことをアサートします。このメソッドにより、予期される例外が非同期コードで確実にスローされます。

例外がスローされない場合、またはスローされた例外が予期した例外ではない場合は、コードを再チェックし、プログラムをデバッグし、プログラム実行時のステータスと動作を理解することをお勧めします。

使用例

はい、Tornado の AsyncTestCase.assertRaises() メソッドを使用した単体テストの例です:

import tornado.testing
import tornado.WEB

class MyHandler(tornado.web.RequestHandler):
async def get(self):
raise ValueError("This is a test exception")

class MyTestCase(tornado.testing.AsyncTestCase):
async def test_exception(self):
app = tornado.web.Application([(r"/", MyHandler)])
self.assertRaises(ValueError, self.fetch, '/')

この例では、get メソッドの実行時に ValueError 例外をスローする MyHandler クラスを定義します。次に、MyTestCase で test_Exception メソッドを定義します。このメソッドでは、self.assertRaises(ValueError, self.fetch, '/') メソッドを使用して、ValueError 例外がスローされることをアサートします。

プログラムが正常に実行されれば、単体テストは成功します。予期した例外がスローされない場合は、「Exception("予期した例外を取得できませんでした")」エラーがスローされます。

以上が竜巻エラー例外の解決策 (\'予期した例外を取得できませんでした\')の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlsjlt.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。