[python] doctest를 사용하여 점진적 구현을 테스트하는 방법은?

doctest는 파이썬의 표준 라이브러리에 포함된 모듈로, 함수나 클래스의 동작을 예제와 함께 문서화하고 테스트하는 도구입니다. doctest를 이용하면 함수나 클래스의 점진적인 구현 과정에서 예제를 사용하여 테스트를 수행할 수 있습니다. 아래는 doctest를 사용하여 점진적 구현을 테스트하는 방법을 설명한 예제입니다.

"""
점진적 구현을 위한 doctest 테스트

원하는 수의 제곱근을 구하는 함수를 작성해보겠습니다.
"""

def sqrt(n):
    """
    주어진 수 n의 제곱근을 계산하는 함수입니다.

    >>> sqrt(4)
    2.0

    >>> sqrt(9)
    3.0
    """
    return n ** 0.5

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

위 예제는 sqrt 함수를 작성하는 과정에서 두 개의 테스트 케이스를 작성한 것입니다. >>> 표시가 있는 줄은 예상되는 결과를 나타내며, 함수의 반환값과 예상한 결과가 일치하는지 확인합니다. if __name__ == "__main__" 부분은 스크립트로 실행되었을 때만 doctest가 수행되도록 하는 코드입니다.

위 예제를 저장한 뒤 터미널에서 실행하면 doctest가 실행되며 함수의 구현이 제대로 되었는지 확인됩니다. 만약 예상한 결과와 일치하지 않는 값이 반환되면 테스트가 실패하게 되어 추가적인 수정이 필요함을 나타냅니다. 이런식으로 점진적으로 함수를 구현하며, 함수가 예상대로 동작하는지 확인할 수 있습니다.

참고 문서: