첫 번째 방법은 예제에 출력된 결과를 직접 작성하는 것입니다. 이 경우 예제의 실행 결과를 doctest에 직접 작성해야 합니다. 예를 들어, 아래의 예제 코드를 보겠습니다.
def add(a, b):
"""
두 숫자를 더하는 함수입니다.
>>> add(2, 3)
5
>>> add(10, -5)
5
"""
return a + b
위의 코드에서 add
함수는 두 숫자를 더하여 반환하는 간단한 함수입니다. 예제로 add
함수에 대한 실행 결과를 작성해야 합니다. 이 경우에는 add
함수의 실행 결과가 5로 예상되므로, 그에 맞게 doctest에 작성하면 됩니다.
두 번째 방법은 doctest.ELLIPSIS
를 사용하여 출력 결과를 일부 생략하는 것입니다. ...
을 사용하여 출력 결과의 일부를 생략할 수 있습니다. 예를 들어, 아래의 예제 코드를 보겠습니다.
def multiply(a, b):
"""
두 숫자를 곱하는 함수입니다.
>>> multiply(2, 3)
6
>>> multiply(10, -5)
-50
"""
return a * b
위의 코드에서 multiply
함수는 두 숫자를 곱하여 반환하는 간단한 함수입니다. 예제로 multiply
함수에 대한 실행 결과를 작성해야 합니다. 이 경우에는 multiply
함수의 실행 결과가 6으로 예상되므로, doctest
에서 다음과 같이 작성할 수 있습니다.
>>> multiply(2, 3)
6
>>> multiply(10, -5)
...
마지막 방법은 doctest.OUTPUT_MARKER
를 사용하여 예상되는 출력 결과를 표시하는 것입니다. 예를 들어, 아래의 예제 코드를 보겠습니다.
def divide(a, b):
"""
두 숫자를 나누는 함수입니다.
>>> divide(10, 2)
5.0
>>> divide(5, 0)
Traceback (most recent call last):
...
ZeroDivisionError: division by zero
"""
return a / b
위의 코드에서 divide
함수는 두 숫자를 나누어 반환하는 간단한 함수입니다. 첫 번째 예제의 경우에는 예상되는 출력 결과가 5.0이므로 그대로 작성하면 됩니다. 두 번째 예제의 경우에는 ZeroDivisionError
가 발생하는 예외 상황입니다. 이를 doctest
에서 표시하려면 다음과 같이 작성합니다.
>>> divide(5, 0)
Traceback (most recent call last):
...
ZeroDivisionError: division by zero
위의 세 가지 방법을 사용하여 doctest 결과 출력을 처리할 수 있습니다.
참고 문서: