포스트

Python 함수에서 예외가 발생하는지 테스트하는 방법

pytest를 사용한 예외 테스트

pytest는 Python 테스트 프레임워크 중 하나로, 예외를 테스트하기에 아주 편리합니다. pytest.raises 함수를 사용하면 됩니다.

1
2
3
4
5
6
import pytest
from your_module import your_function

def test_your_function_throws_exception():
    with pytest.raises(ExpectedException):
        your_function(arguments)

여기서 ExpectedException은 예상되는 예외의 이름입니다. 예를 들어, ValueErrorTypeError 등이 될 수 있습니다.

unittest를 사용한 예외 테스트

unittest는 Python 표준 라이브러리에 포함된 테스트 프레임워크입니다. unittest를 사용하려면 assertRaises 메소드를 사용할 수 있습니다.

1
2
3
4
5
6
7
import unittest
from your_module import your_function

class TestYourFunction(unittest.TestCase):
    def test_throws_exception(self):
        with self.assertRaises(ExpectedException):
            your_function(arguments)

단순 try-except를 사용한 예외 테스트

단위 테스트 프레임워크 없이 순수 Python 코드로만 예외를 테스트하려면, try-except 블록을 사용할 수 있습니다.

1
2
3
4
5
6
try:
    your_function(arguments)
except ExpectedException:
    print("예외가 정상적으로 발생했습니다.")
else:
    print("예외가 발생하지 않았습니다.")

정리

함수에서 예외를 제대로 던지는지 확인하는 것은 코드의 안정성을 높이는 중요한 단계입니다. pytestunittest 같은 테스트 프레임워크를 사용하면 이 과정이 더 쉬워집니다. 하지만 기본적인 try-except 블록으로도 가능합니다. 이러한 방법들을 통해 코드가 예상대로 동작하는지 확인할 수 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.