[python] doctest를 사용하여 예외 상황을 테스트하는 방법은?
일반적으로 doctest 모듈은 함수나 모듈의 동작을 확인하는 데 사용됩니다. 예외 상황에 대한 테스트를 작성할 때에도 doctest를 활용할 수 있습니다. 아래는 예외 상황을 테스트하는 방법을 보여주는 예제입니다.
def divide(a, b):
"""
두 개의 숫자를 나누는 함수입니다.
>>> divide(10, 2)
5.0
>>> divide(10, 0) # 예외 상황 테스트
Traceback (most recent call last):
...
ZeroDivisionError: division by zero
"""
return a / b
if __name__ == "__main__":
import doctest
doctest.testmod()
위 예제에서는 divide() 함수를 정의한 후 doctest를 활용하여 함수의 동작을 확인합니다. 첫 번째 테스트에서는 정상적인 동작을 확인하기 위해 divide(10, 2)를 호출한 결과가 5.0인지를 검증합니다.
두 번째 테스트에서는 예외 상황을 테스트하기 위해 divide(10, 0)를 호출합니다. 이 경우 ZeroDivisionError가 발생해야 합니다. doctest는 Traceback (most recent call last): 부터 ZeroDivisionError: division by zero 라인까지의 내용이 기대한 예외 상황과 일치하는지 확인합니다.
위와 같이 doctest를 사용하면 함수나 모듈의 예외 상황에 대한 테스트를 간편하게 작성하고 수행할 수 있습니다.
참고 자료: