Unittest-framework-exceptions-test
提供:Dev Guides
UnitTest Framework-例外テスト
Pythonテストフレームワークは、例外が発生したことを確認するために次のアサーションメソッドを提供します。
assertRaises(例外、呼び出し可能、* args、** kwds)
関数が位置引数またはキーワード引数で呼び出されたときに例外(最初の引数)が発生することをテストします。 予想される例外が発生した場合はテストに合格し、別の例外が発生した場合はエラー、例外が発生しない場合は失敗します。 例外のグループのいずれかをキャッチするには、例外クラスを含むタプルを例外として渡すことができます。
次の例では、ZeroDivisionErrorが発生するかどうかを確認するテスト関数が定義されています。
testraise()関数はassertRaises()関数を使用して、div()関数が呼び出されたときにゼロによる除算が発生するかどうかを確認します。 上記のコードは例外を発生させます。 しかし、次のように引数をdiv()関数に変更します-
これらの変更を使用してコードを実行すると、ZeroDivisionErrorが発生しないため、テストは失敗します。
assertRaisesRegexp(exception、regexp、callable、* args、** kwds)
発生した例外の文字列表現で_regexp_が一致することをテストします。 regexpは、正規表現オブジェクト、またはre.search()による使用に適した正規表現を含む文字列です。
次の例は、assertRaisesRegexp()の使用方法を示しています-
ここでは、testraseRegex()テストは最初の引数として失敗しません。 「ポイント」は、2番目の引数文字列にあります。
ただし、変更は次のようになります-
TypeError例外がスローされます。 したがって、次の結果が表示されます-