[python] doctest를 사용하여 동적으로 생성되는 데이터를 테스트하는 방법은?

doctest는 Python의 표준 라이브러리로, 함수나 메서드에 대한 예제 코드와 그 예제의 결과를 포함한 독스트링을 작성하고, 이를 테스트로 사용하는 도구입니다. 동적으로 생성되는 데이터를 테스트하기 위해서는 테스트할 함수나 메서드의 독스트링에 예제 코드와 예상되는 출력 값을 포함시켜야 합니다.

아래는 동적으로 생성되는 데이터를 테스트하는 예제입니다. 예제에서는 range 함수를 사용하여 주어진 범위 내에서 동적으로 데이터를 생성하고, 예상되는 결과와 비교하도록 테스트를 작성했습니다.

def generate_data(start, end):
    """
    주어진 범위 내에서 동적으로 데이터를 생성합니다.

    예제:
    >>> generate_data(1, 5)
    [1, 2, 3, 4, 5]

    >>> generate_data(10, 15)
    [10, 11, 12, 13, 14, 15]
    """
    return list(range(start, end + 1))

if __name__ == '__main__':
    import doctest
    doctest.testmod()

위 예제에서는 generate_data 함수의 독스트링에 예제 코드와 예상되는 출력 값을 작성했습니다. doctest.testmod()를 통해 독스트링의 예제 코드와 실제 함수의 결과를 비교하여 테스트를 수행합니다.

이렇게 작성된 doctest는 실행할 때 자동으로 테스트되며, 예제 코드와 실제 결과가 일치하는지를 확인할 수 있습니다. 이를 통해 동적으로 생성되는 데이터를 테스트할 수 있습니다.

자세한 doctest 사용법과 예제는 Python 공식 문서에서 찾아볼 수 있습니다.

참고 문서: