[python] doctest를 사용하여 테스트 데이터 생성을 테스트하는 방법은?

doctest는 Python 표준 라이브러리에 포함된 모듈로, 함수의 예제와 그에 대한 예상 출력을 문서화하는 도구입니다. 이를 통해 함수의 동작을 검증하고 테스트할 수 있습니다. 테스트 데이터를 생성하는 함수를 테스트할 때도 doctest를 사용할 수 있습니다.

먼저, 테스트할 함수가 있는 모듈을 작성합니다.

# my_module.py

def generate_data(num):
    """
    주어진 숫자만큼의 테스트 데이터를 생성합니다.

    >>> generate_data(3)
    [1, 2, 3]
    >>> generate_data(5)
    [1, 2, 3, 4, 5]
    """
    return list(range(1, num+1))

여기에서 generate_data 함수를 doctest로 테스트하기 위해, 함수의 예제 호출과 예상 출력을 함수의 docstring에 작성합니다. 이 예제는 generate_data(3)의 결과가 [1, 2, 3]이고, generate_data(5)의 결과가 [1, 2, 3, 4, 5]임을 나타냅니다.

이제, 이 모듈을 실행하면 doctest가 실행되고 테스트 결과를 출력합니다. 만약 예상 출력과 실제 출력이 일치하지 않는다면 테스트가 실패하며, 일치한다면 테스트가 통과됩니다.

# main.py

import doctest
import my_module

doctest.testmod(my_module)

main.py 파일에서는 doctest.testmod 함수를 사용하여 my_module 모듈에 포함된 doctest를 실행합니다.

실행 결과에서 테스트가 성공적으로 통과되었다는 메시지를 확인할 수 있습니다. 만약 테스트 중에 오류가 발생한다면 오류 메시지와 함께 해당 라인을 표시하여 디버깅에 도움이 됩니다.

이렇게 doctest를 사용하여 테스트 데이터 생성 함수를 테스트할 수 있습니다. 이러한 방법을 사용하면 예제와 함께 문서화된 함수를 작성하고, 실제로도 테스트하는 편리한 방법을 제공합니다.

더 자세한 내용은 Python 공식 문서를 참고하십시오.