[python] doctest를 사용하여 시뮬레이션 코드를 테스트하는 방법은?

먼저, 시뮬레이션 코드에 테스트용 예제와 예상된 결과를 주석으로 작성합니다. 예를 들어 다음과 같은 코드가 있다고 가정해봅시다.

def multiply(a, b):
    """
    두 수를 곱하는 함수

    >>> multiply(2, 3)
    6
    >>> multiply(4, 5)
    20
    >>> multiply(0, 10)
    0
    """
    return a * b

이제, doctest를 실행하여 테스트를 수행할 수 있습니다. 다음과 같이 코드를 작성합니다.

import doctest

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

이 코드를 실행하면 doctest는 함수 내에 작성된 예제와 예상된 결과를 비교하고 테스트를 수행합니다. 만약 예상된 결과와 실행 결과가 일치하지 않으면 테스트가 실패로 처리됩니다.

위의 예제를 실행하면 모든 테스트가 성공하게 되지만, 예상된 결과와 실행 결과가 다를 경우에는 실패하는 것을 확인할 수 있습니다. 아래는 실패하는 예제입니다.

**********************************************************************
File "example.py", line 6, in __main__.multiply
Failed example:
    multiply(2, 3)
Expected:
    7
Got:
    6
**********************************************************************
1 items had failures:
   1 of   3 in __main__.multiply
***Test Failed*** 1 failures.

이러한 방법으로 doctest를 사용하여 시뮬레이션 코드를 테스트할 수 있습니다. doctest는 간단하고 직관적인 방식으로 테스트를 작성할 수 있기 때문에, 복잡한 시뮬레이션 코드에서도 테스트를 수행하기에 좋은 도구입니다.

[참고문헌]