[python] doctest를 사용하여 압축 및 해제 코드를 테스트하는 방법은?

doctest는 Python의 표준 라이브러리에 포함된 모듈로, 코드의 예제와 실행 결과를 문서화하는 동시에 코드를 테스트하는 기능을 제공합니다. 이를 활용하여 압축 및 해제 코드를 테스트할 수 있습니다.

아래는 doctest를 사용하여 압축 및 해제 함수를 테스트하는 코드 예시입니다.

import doctest
import zlib

def compress_data(data):
    """
    Given a string 'data', compresses it using zlib.

    >>> compress_data('Hello, World!')
    'x\x9c+LJ\x04\x00\x08\xab'
    """

    compressed_data = zlib.compress(data)
    return compressed_data

def decompress_data(compressed_data):
    """
    Given a compressed string 'compressed_data', decompresses it using zlib.

    >>> decompress_data('x\x9c+LJ\x04\x00\x08\xab')
    'Hello, World!'
    """

    decompressed_data = zlib.decompress(compressed_data)
    return decompressed_data

if __name__ == "__main__":
    doctest.testmod()

압축 및 해제 함수인 compress_datadecompress_data 함수의 각각의 docstring에 예제와 예상되는 결과를 작성합니다. doctest 모듈은 이러한 예제와 결과를 추출하여 실제 함수 동작과 비교하여 테스트합니다.

위의 예시 코드에서는 compress_data('Hello, World!') 예제의 경우 압축된 결과와 일치하는지 테스트하고, decompress_data('x\x9c+LJ\x04\x00\x08\xab') 예제의 경우 해제된 결과와 일치하는지 테스트합니다.

테스트를 실행하려면 코드의 마지막 부분에 doctest.testmod() 함수를 호출해야 합니다. 이렇게 하면 doctest 모듈이 자동으로 해당 파일의 docstring을 테스트하게 됩니다.

doctest를 실행하면 테스트 결과를 상세하게 표시해주므로 코드의 정확성을 확인하는 데 도움이 됩니다. 이를 통해 압축 및 해제 코드의 동작을 검증할 수 있습니다.

추가적인 정보를 원하시면 Python 공식 문서 - doctest를 참고하시기 바랍니다.