[python] doctest를 사용하여 파이썬 데코레이터를 테스트하는 방법은?

먼저, 테스트하려는 데코레이터의 docstring에 테스트 케이스를 작성해야 합니다. 테스트 케이스는 “»>”로 시작하며, 해당 데코레이터를 사용한 예제 입력과 예상 출력을 작성합니다. 예를 들어, 아래와 같은 데코레이터를 테스트한다고 가정해봅시다.

def uppercase(func):
    """
    데코레이터: 함수의 출력을 대문자로 변환하는 역할을 합니다.

    >>> @uppercase
    >>> def hello():
    >>>     return "hello, world!"
    >>>
    >>> hello()
    'HELLO, WORLD!'
    """
    def wrapper(*args, **kwargs):
        result = func(*args, **kwargs)
        return result.upper()
    return wrapper

위의 코드에서는 hello() 함수를 uppercase 데코레이터로 감싸는 방식으로 사용되고 있습니다. 이 데코레이터가 예상대로 작동하는지 확인하기 위해 doctest를 사용할 수 있습니다.

doctest를 실행하기 위해서는 doctest 모듈을 import하고, doctest.testmod() 함수를 호출해야 합니다.

import doctest

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

위와 같이 코드를 작성한 뒤에, 해당 모듈을 실행하면 doctest를 실행하여 데코레이터의 동작을 테스트할 수 있습니다.

이렇게 doctest를 사용하여 파이썬 데코레이터를 테스트할 수 있습니다. doctest를 사용하는 것은 간단하고 편리한 방법이며, docstring에 작성된 예제를 통해 데코레이터의 동작을 확인할 수 있습니다.