[python] 테스트 중에 임의의 예외 발생하기

테스트를 작성할 때, 특정 상황에서 예외가 발생하는지 확인하는 것이 중요합니다. 하지만 특정한 상황을 재현하기 어려운 경우가 있을 수 있습니다. 이럴 때는 unittestassertRaises를 사용하여 직접 예외를 발생시킬 수 있습니다.

import unittest

def divide(a, b):
    if b == 0:
        raise ZeroDivisionError("Cannot divide by zero")
    return a / b

class DivideTestCase(unittest.TestCase):
    def test_divide_by_zero(self):
        with self.assertRaises(ZeroDivisionError):
            divide(10, 0)

위의 예제에서는 divide 함수를 테스트하며, 나누는 수가 0인 경우에 ZeroDivisionError 예외가 발생하는지 확인합니다.

unittest.TestCase를 상속받은 테스트 케이스 클래스 안에서 assertRaises 메소드를 사용합니다. 이 메소드는 첫 번째 인자로 예상되는 예외 클래스를 받고, 두 번째 인자로 예외가 발생할 코드를 작성합니다.

with 문을 사용하여 예외가 발생하는 것을 확인하며, 발생한 예외를 캐치하여 테스트의 성공 여부를 결정합니다.

이 방법을 사용하면 임의의 예외를 발생시키는 테스트 케이스를 작성할 수 있습니다. 특정 예외에 대한 처리를 테스트하고자 할 때 유용한 방법입니다.

참고자료: