[python] 테스트 중에 임의의 예외 발생하기
테스트를 작성할 때, 특정 상황에서 예외가 발생하는지 확인하는 것이 중요합니다. 하지만 특정한 상황을 재현하기 어려운 경우가 있을 수 있습니다. 이럴 때는 unittest
의 assertRaises
를 사용하여 직접 예외를 발생시킬 수 있습니다.
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
문을 사용하여 예외가 발생하는 것을 확인하며, 발생한 예외를 캐치하여 테스트의 성공 여부를 결정합니다.
이 방법을 사용하면 임의의 예외를 발생시키는 테스트 케이스를 작성할 수 있습니다. 특정 예외에 대한 처리를 테스트하고자 할 때 유용한 방법입니다.
참고자료: