Pythonのunittest.TestCaseのメソッド assertRaisesRegex

unittest.TestCaseには、assertRaisesRegexというメソッドが存在します。assertRaisesRegexアサーションは、指定した例外が発生することと、その例外メッセージが正規表現と一致することを同時に検証します。

以下は、unittest.TestCaseを使用してassertRaisesRegexアサーションを含むテストケースの例です:

python
import unittest def divide(a, b): if b == 0: raise ZeroDivisionError("ゼロで割ることはできません") return a / b class MyTestCase(unittest.TestCase): def test_zero_division_error_with_regex(self): with self.assertRaisesRegex(ZeroDivisionError, "ゼロで割ることはできません"): result = divide(5, 0) if __name__ == '__main__': unittest.main()

上記の例では、self.assertRaisesRegexアサーションを使用して、divide関数の呼び出しにおいてZeroDivisionErrorが発生し、その例外メッセージが指定した正規表現に一致することを検証しています。テストは成功するはずで、指定した例外が発生し、そのメッセージが正規表現と一致しない場合にはテストが失敗します。

assertRaisesRegexアサーションを使用することで、例外の発生だけでなく、例外メッセージのパターンも検証できます。これは、特定のエラーメッセージが期待通りに生成されることを確認する際に役立ちます。

unittestフレームワークは、さまざまなアサーションメソッドを提供しており、テストケース内でさまざまな条件を検証するのに役立ちます。assertRaisesRegexアサーションはその一部です。