반응형

독테스트(doctest)는 함수나 클래스 등의  독스트링(docstring)에 추가된 사용 예제를 자동으로 테스트하는데 사용됩니다. 



최초작성 2023. 12. 20



함수나 클래스 등의 구성과 동작을 설명하기 위해 사용되는 독스트링에 대해서는 다음 포스트를 참고하세요.  본 포스트에서는 독스트링에 추가로 사용 예제를 추가한 후, 테스트하는 데 사용되는 독테스트를 다룹니다.   

 

Python 독스트링(Docstring) 사용법

https://webnautes.tistory.com/2242 



두 정수를 더하는 add함수를 정의한 후, 독스트링을 추가하여 함수의 목적, 파라미터, 리턴값에 대한 설명을 추가했습니다. 그리고 나서 함수 사용예제를 추가했습니다. >>> 다음에 함수 호출 예를 적어주고 그다음 줄에 리턴값을 적어주면 됩니다. 예를 들어 add(2,3)을 호출시 5가 리턴된다는 의미로 다음처럼 적습니다. 

 

>>> add(2, 3)

 

add 함수에 추가되어 있는 독스트링의 사용예제를 테스트해보기 위해 다음 두줄의 코드를  다음 예제코드처럼 적어주면 됩니다. 

 

import doctest

doctest.testmod()

 

def add(a, b):
    """
    두 정수를 더하는 함수입니다.

    :param a: (int) 첫 번째 정수.
    :param b: (int) 두 번째 정수.
    :return: (int) 두 정수의 합

    >>> add(2, 3)
    5
    >>> add(10, -2)
    8
    """

    return a + b

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



코드를 실행해보면 에러가 발생하지 않습니다. add 함수의 독스트링에 있는 사용예제가 문제없이 동작했기 때문입니다.



일부러 문제가 발생하도록 독스트링의 사용예제를 다음처럼 수정해봅니다. add(2,3)의 리턴값이 5가 아니라 6이라고 수정합니다. 

    >>> add(2, 3)

    6

 

 

코드를 실행시켜보면 다음 메시지가 출력됩니다.  add(2, 3) 호출의 결과로 6을 기대했는데 5가 되어서 테스트에 실패했다는 의미입니다. 

 

**********************************************************************

File "/Users/webnautes/Python_Example/test.py", line 9, in __main__.add

Failed example:

    add(2, 3)

Expected:

    6

Got:

    5

**********************************************************************

1 items had failures:

   1 of   2 in __main__.add

 

반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts