Python 기본 요약

巴扎黑
巴扎黑원래의
2017-07-17 15:56:281833검색

테스트 코드

함수 및 클래스 작성 시 테스트 함수도 작성할 수 있으며, 테스트를 통해 다양한 입력에도 코드가 정상적으로 작동하는지 확인할 수 있습니다. 프로그램에 새 코드를 추가할 때 코드를 테스트하여 프로그램의 기존 루틴을 손상시키지 않는지 확인할 수도 있습니다. 모듈을 자주 테스트하십시오.

Python 모듈 unittest의 도구를 통해 코드를 테스트합니다. 테스트를 통과하는 것이 어떤 것인지, 실패하는 것이 어떤 것인지 이해하고, 테스트가 실패했다는 것을 알면 코드를 개선하는 방법을 알게 되며, 프로젝트에 대해 작성해야 하는 테스트 수를 알게 됩니다. 함수와 클래스를 테스트하는 방법을 알아보세요.

  프로그램을 실행하는 동안 항상 다양한 오류가 발생합니다. 일부 오류는 프로그램 작성 시 문제로 인해 발생합니다. 예를 들어 정수 대신 문자열이 출력되어야 하는 경우를 일반적으로 버그라고 하며 버그를 수정해야 합니다.

테스트 함수

단위 테스트 및 테스트 사례

 Python의 단위 테스트 모듈은 코드 테스트 도구를 제공합니다. 단위 테스트는 함수의 특정 측면에 문제가 없는지 확인하는 데 사용됩니다. 테스트 케이스는 함수가 모든 면에서 문제가 없는지 확인하기 위한 단위 테스트 세트입니다.

  전체 범위 테스트 케이스에는 기능을 사용하는 다양한 방법을 다루는 완전한 테스트 케이스 세트가 포함됩니다.

테스트를 통과할 수 있음

함수에 대한 테스트 함수를 작성하려면 먼저 moduletest 모듈과 테스트할 함수를 가져오고, unittest.TestCase를 상속하는 클래스를 만든 다음, 테스트의 다양한 측면을 테스트하는 일련의 메서드를 작성하세요. 함수의 동작. test로 이름을 지정하는 것이 가장 좋습니다. U name_function.py

def get_Formatted_name(이름, 성): last = input("성을 알려주세요: ")
"" "" "" ""

Full_name = FIRST + '' + Last

Return full_name.tital( ; input( " n 이름을 알려주세요: ")

if first == 'q':

break
if last == 'q':

break

formatted_name = get_formatted_name(first, last) print("t깔끔한 형식의 이름: " + formatted_name + '.')formatted_name = get_formatted_name('janis', 'joplin') self.assertEqual(formatted_name, 'Janis Joplin')

test_name_function.py

import 단위 테스트

에서 name_function import get_formatted_name

class NamesTestCase(unittest.TestCase):      

"""Test name_function.py"""        

def test_first_last_name(self):        

"""Janis Joplin과 같은 이름을 올바르게 처리할 수 있나요? ? "
unittest.main()

유용한 기능 중 하나: 어설션 메서드, AssertEqual Assertion 방법은 얻은 결과가 기대값과 같은지 검증하는 데 사용됩니다.
실패한 테스트

  테스트가 실패하면 테스트를 수정하지 말고 테스트 실패의 원인이 된 코드를 수정하세요. 방금 함수에 수정한 사항을 확인하고 함수가 정상적으로 작동하지 않게 만든 수정 사항을 찾아보세요. 예상되는.

모듈의 다양한 어설션 메서드

 6개의 공통 어설션

Methods

Purpose

assertEqual(a, b)

a == b 확인

assertNotEqual(a, b)assertTrue(x) False(x)assertIn(item, list)assertNotIn(item, list)

a != b

x가 True인지 확인

확인 that x is False

항목이 목록에 있는지 확인

항목이 목록에 없는지 확인

메서드 setUp()

  Unittest.TestCase 클래스에는 객체를 한 번만 생성하고 모든 테스트 메서드에서 사용할 수 있는 setUp() 메서드가 포함되어 있습니다.

  Survey.py

if response == 'q':

class AnonymousSurvey():                                               질문

Self.Responses = []

def Show_question (Self):

" "" 설문지 표시 ""

인쇄(질문)

def store_response(self, new_response):                              ~ ~              수집된 모든 답변 표시 """

                                                             + py

from Survey import AnonymousSurvey

#질문을 정의하고 설문조사를 나타내는 AnonymousSurvey 개체를 만듭니다.

question = "처음에 말하는 언어는 무엇입니까?"

my_survey = AnonymousSurvey(question)

#질문 표시 및 답변 저장 my_survey .show_question()

print("Enter 'q' to quit.n")

while True:

response = input("Language: ")
break

my_survey.store_response(response)

# 설문조사 결과 표시print("n설문조사에 참여해주신 모든 분들께 감사드립니다!")
my_survey.show_results()

 test_survey.py

height = int(height) #정수로 변환

import unittest

from Survey import AnonymousSurvey

class TestAnonymousSurvey(unittest.TestCase): """AnonymousSurvey 클래스 테스트"""​

def 설정(자체): 사용된 테스트 방법에 대한 설문조사 및 답변 세트를 만듭니다.        

self.responses = ['English', 'Spanish', 'Mandarin']​​​​​​​​​​​​​​​​​ ​​​​​​​​​​​​​​​​​​​​​​​​​​​응답[0])

self.assertIn(self.responses[0], self.my_survey .responses)

def test_store_3_responses(self):

"""3개의 테스트 답변이 제대로 저장됩니다"""  

self.responses의 응답:                                                       ​응답)

unittest.main()

 메서드 setUp()

은 두 가지 작업을 수행합니다. 설문조사 개체를 생성하고 답변 목록을 생성합니다.

이 두 가지를 저장하는 변수 이름에는 접두어 self가 포함되어 있으므로(즉, 속성에 저장됨) 이 클래스 내 어디에서나 사용할 수 있습니다. 설문 조사 응답자나 답변을 생성하지 않으므로 두 가지 테스트 방법이 모두 더 간단해집니다.

int()를 사용하여 숫자 입력

 input()이 반환하는 데이터 유형이 str(문자열)이므로 Python은 직접 입력된 숫자를 문자열로 변환합니다. str은 정수와 직접 비교할 수 없으므로 먼저 str을 정수로 변환해야 합니다. Python은 이를 수행하기 위해 int() 함수를 제공합니다

height = input("키는 몇 인치입니까? ")

모듈로 연산자

모듈로 연산자(%)는 두 숫자를 나누고 나머지를 반환하는 매우 유용한 도구입니다.


>>> 4% 3

1

>>> 5% 3

2

>>> 6% 3

0

>>7% 31

숫자이면 나머지는 0이므로 모듈로 연산자는 0을 반환합니다. 이를 사용하여 숫자가 홀수인지 짝수인지 확인할 수 있습니다.

위 내용은 Python 기본 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.