Pythonのassert
ステートメントは、プログラムのバグをデバッグするための強力なツールです。特に、関数が期待した例外をスローするかどうかをテストする場合に有用です。
unittestモジュールを使用する
Pythonのunittest
モジュールには、TestCase.assertRaises
というメソッドがあります。これを使用すると、関数が特定の例外をスローすることを確認できます。以下にその使用例を示します。
import unittest
import mymod
class MyTestCase(unittest.TestCase):
def test1(self):
self.assertRaises(SomeCoolException, mymod.myfunc)
このコードでは、mymod.myfunc
がSomeCoolException
をスローすることをテストしています。
pytestを使用する
pytest
では、pytest.raises
を使用して例外を検出します。以下にその使用例を示します。
import pytest
def test_passes():
with pytest.raises(Exception) as e_info:
x = 1 / 0
このコードでは、1 / 0
がException
をスローすることをテストしています。
これらの方法を使用することで、Pythonの関数が期待した例外をスローするかどうかを効果的にテストできます。これにより、コードの品質を向上させ、バグを早期に検出することが可能になります。