독스트링을 알고 있습니다. Python의 함수 및 클래스에 대한 추가 정보를 제공합니다. doctest를 사용하여 기능 테스트에 사용할 수도 있습니다. 기준 치수. doctest 모듈은>>>로 시작하는 코드를 실행하고 예상 출력과 비교합니다.
doctest.로 함수를 작성하려면 아래 단계를 따르세요.
-
doctest 가져오기 모듈.
-
docstring으로 함수를 작성하십시오. 독스트링 내부에 동일한 기능을 테스트하기 위해 다음 두 줄을 작성합니다.
-
>>>function_name(*args).
-
출력이 예상됩니다.
-
-
기능 코드를 작성하십시오.
-
이제 테스트를 위해 doctest.testmod(name=function_name, verbose=True) 함수를 호출합니다. verbose가 False로 설정되고 모든 테스트가 통과되면 테스트 결과를 볼 수 없습니다. True로 설정하는 것이 좋습니다.
예시
doctest로 간단한 함수를 작성해 봅시다.
# importing the module import doctest # function def numbers_sum(*args) -> int: """ This function returns the sum of all the argumets Shell commands for testing incoking the function followed by expected output: >>> numbers_sum(1, 2, 3, 4, 5) 15 >>> numbers_sum(6, 7, 8) 21 """ return sum(args) # invoking the testmod function doctest.testmod(name='numbers_sum', verbose=True)
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Trying: numbers_sum(1, 2, 3, 4, 5) Expecting: 15 ok Trying: numbers_sum(6, 7, 8) Expecting: 21 ok 1 items had no tests: numbers_sum 1 items passed all tests: 2 tests in numbers_sum.numbers_sum 2 tests in 2 items. 2 passed and 0 failed. Test passed. TestResults(failed=0, attempted=2)
출력을 보면 각 테스트 후에 ok라는 단어가 있습니다. 즉, 예상 출력과 실제 출력이 일치합니다. 출력 끝에서 테스트 결과를 확인할 수 있습니다.
예시
테스트가 실패하면 어떻게 되는지 봅시다. 잘못된 출력으로 동일한 예제를 실행하십시오.
# importing the module import doctest # function def numbers_sum(*args) -> int: """ This function returns the sum of all the argumets Shell commands for testing incoking the function followed by expected output: >>> numbers_sum(1, 2, 3, 4, 5) 10 >>> numbers_sum(6, 7, 8) 23 """ return sum(args) # invoking the testmod function doctest.testmod(name='numbers_sum', verbose=True)
출력
위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Trying: numbers_sum(1, 2, 3, 4, 5) Expecting: 10 ********************************************************************** File "__main__", line 10, in numbers_sum.numbers_sum Failed example: numbers_sum(1, 2, 3, 4, 5) Expected: 10 Got: 15 Trying: numbers_sum(6, 7, 8) Expecting: 23 ********************************************************************** File "__main__", line 12, in numbers_sum.numbers_sum Failed example: numbers_sum(6, 7, 8) Expected: 23 Got: 21 1 items had no tests: numbers_sum ********************************************************************** 1 items had failures: 2 of 2 in numbers_sum.numbers_sum 2 tests in 2 items. 0 passed and 2 failed. ***Test Failed*** 2 failures. TestResults(failed=2, attempted=2)
테스트 결과를 보면 2번은 불합격이다. 예상을 확인할 수도 있습니다. 및 실제 출력에 출력합니다.
결론
튜토리얼에 의문점이 있으면 댓글 섹션에 언급하세요.