[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
를 사용하면 함수나 모듈의 예외 상황에 대한 테스트를 간편하게 작성하고 수행할 수 있습니다.
참고 자료: