Pythonのunittestで例外発生をテストする方法をメモしておく。
例外発生のテスト
基本的な書き方
例外発生をテストする場合、assertRaises()
をwith
と一緒に使って以下のように書く。
with self.assertRaises(<発生を期待する例外>):
<例外が発生するテスト対象メソッド>
##サンプル
上記の例外発生をテストする場合の書き方を使って、簡単なサンプルを書いてみた。
テストを実行すると、テスト対象メソッドでValueError
が発生するのでテスト成功となる。
calculation.py
class calculation:
def multiply(self, a, b):
if type(a) is not int or type(b) is not int:
raise ValueError
return a * b
test_calculation.py
class TestCalculation(unittest.TestCase):
def test_multiply(self):
calculator = calculation()
# テストコードの記述
with self.assertRaises(ValueError):
calculator.multiply("test", 1)
# unittest.main()で実行
if __name__ == "__main__":
unittest.main()