Pythonのunittest
モジュールは、テストの自動化、テスト用のセットアップやシャットダウンのコードの共有、テストのコレクション化、そして報告フレームワークからのテストの独立性をサポートしています。この記事では、Pythonのunittest
で例外処理をテストする方法について説明します。
例外処理のテスト
例外処理をテストする基本的な書き方は、assertRaises()
をwith
と一緒に使う方法です。以下にその例を示します。
import unittest
def function_that_raises_exception():
raise ValueError("An error occurred")
class TestException(unittest.TestCase):
def test_raise_exception(self):
with self.assertRaises(ValueError):
function_that_raises_exception()
if __name__ == "__main__":
unittest.main()
このコードでは、function_that_raises_exception
関数がValueError
を発生させることをテストしています。assertRaises()
メソッドは、指定した例外が発生することを確認します。
例外メッセージのテスト
例外のメッセージも含めてテストするにはassertRaises()
のmsg
引数を使用します。以下にその例を示します。
import unittest
def function_that_raises_exception_with_message():
raise ValueError("Specific error message")
class TestException(unittest.TestCase):
def test_raise_exception_with_message(self):
with self.assertRaises(ValueError, msg="Specific error message"):
function_that_raises_exception_with_message()
if __name__ == "__main__":
unittest.main()
このコードでは、function_that_raises_exception_with_message
関数が特定のメッセージとともにValueError
を発生させることをテストしています。
以上がPythonのunittest
で例外処理をテストする基本的な方法です。これらのテクニックを使って、コードが期待通りの例外を適切に処理していることを確認できます。