[python] doctest를 사용하여 시간 기반 동작을 테스트하는 방법은?
doctest는 Python의 내장 모듈로, 패키지 또는 모듈의 docstring에 포함된 예제 코드를 실행하여 테스트하는 간단한 방법을 제공합니다. 일반적으로 함수의 입력과 출력을 테스트하는 데 사용되지만, 시간에 따라 변하는 동작을 테스트하는 데도 사용할 수 있습니다.
아래는 doctest를 사용하여 시간에 따라 변하는 동작을 테스트하는 예시입니다.
import time
def my_function():
"""
>>> my_function()
1
2
3
"""
for i in range(1, 4):
print(i)
time.sleep(1)
# 1초마다 출력하여 시간에 따른 동작을 테스트
if __name__ == "__main__":
import doctest
doctest.testmod()
위의 예제에서 my_function()
은 1부터 3까지의 숫자를 1초마다 출력하는 함수입니다. doctest
모듈의 testmod()
함수를 호출하여 my_function()
의 docstring에 포함된 예제 코드를 실행하고, 예상 출력과 실제 출력이 일치하는지 확인합니다.
doctest를 실행하면 docstring에 포함된 예제 코드와 비교하여 테스트를 수행하므로, 시간에 따라 변하는 동작도 테스트할 수 있습니다. 예제 코드에서는 1초마다 출력되는 값들을 검증하는데 사용하고 있습니다.
doctest를 사용하면 코드와 문서를 한 곳에서 유지하고 동기화할 수 있으므로, 테스트 코드 작성에 편리함을 제공합니다. 시간 기반의 동작을 테스트할 때도 간편하게 사용할 수 있으므로, doctest를 활용하여 코드의 정확성을 보장할 수 있습니다.
자세한 내용은 Python 공식 문서의 doctest 모듈을 참조하시기 바랍니다.