PyUnit 튜토리얼: Python 단위 테스트 프레임워크(예제 포함)

단위 테스트 란 무엇입니까?

단위 테스트 in Python 버그가 덜 반복되고 수정 비용이 적게 드는 애플리케이션 개발 단계 초기에 버그를 식별하기 위해 수행됩니다.

단위 테스트는 다음과 같이 설계된 스크립트 코드 수준 테스트입니다. Python 기능의 작은 "단위"를 확인합니다. 단위 테스트는 테스트 픽스처를 기반으로 하는 객체 지향 프레임워크입니다.

Python 단위 테스트 기술

Python 단위 테스트에는 주로 종속 코드에 액세스하지 않고 특정 모듈을 테스트하는 작업이 포함됩니다. 개발자는 스텁 및 모의와 같은 기술을 사용하여 코드를 "유닛"으로 분리하고 개별 조각에 대해 유닛 수준 테스트를 실행할 수 있습니다.

  • 테스트 주도 개발 TDD: 단위 테스트는 다음과 같이 수행되어야 합니다. Python, 해당 개발자는 테스트 중심 개발 방법을 사용합니다. TDD 방법에서는 먼저 디자인합니다. Python 단위 테스트를 수행한 후에만 이 기능을 구현할 코드를 계속 작성합니다.
  • 스텁 및 모의: 이는 테스트 중인 가짜 메서드를 시뮬레이션하는 두 가지 주요 기술입니다. ㅏ 그루터기 단위 테스트가 올바르게 실행되는 데 필요한 일부 종속성을 채우는 데 사용됩니다. ㅏ 모조품 반면에 우리가 주장한 테스트를 실행하는 가짜 개체가 있습니다.

    두 메서드의 의도는 클래스나 함수의 모든 종속성을 테스트하지 않는다는 점에서 동일합니다.

Python 단위 테스트 프레임워크

단위 테스트 프로세스를 더 쉽게 만들고 프로젝트 품질을 향상하려면 다음을 권장합니다. Python 단위 테스트 프레임워크. 단위 테스트 프레임워크에는 다음이 포함됩니다.

Python 단위 테스트 기술

  • 파이유닛: PyUnit은 코드의 자동화된 테스트를 위한 고정 장치, 테스트 케이스, 테스트 스위트 및 테스트 실행기를 지원합니다. PyUnit에서는 테스트 케이스를 동일한 픽스처가 있는 스위트로 구성할 수 있습니다.
  • 코: Nose에 내장된 플러그인은 출력 캡처, 코드 적용 범위, Doctest 등을 도와줍니다. Nose 구문은 매우 간단하며 테스트 작성 장벽을 줄여줍니다. 확장됩니다 Python 테스트를 더 쉽게 하기 위한 단위 테스트.
  • 독테스트: Doctest 테스트 스크립트는 파일 하단에 작은 기능이 있는 docstring에 들어갑니다. Doctest를 사용하면 문서에 포함된 예제를 실행하고 예상 결과를 반환했는지 확인하여 코드를 테스트할 수 있습니다. doctest의 사용 사례는 덜 상세하며 특별한 사례를 포착하지 않습니다. 모듈과 해당 구성 요소의 주요 사용 사례를 표현하는 문서로 유용합니다.

PyUnit을 사용한 단위 테스트

퓨유닛은 Python 항구 JUnit. Pyunit의 일부로, unittest 모듈에는 5개의 주요 클래스가 있습니다.

PyUnit을 사용한 단위 테스트

  • 테스트케이스 클래스: TestCase 클래스는 테스트 루틴을 담고 있으며 각 루틴을 만들고 그 이후 정리를 위한 후크를 제공합니다.
  • TestSuite 클래스: 컬렉션 컨테이너 역할을 하며 여러 테스트케이스 개체와 여러 테스트스위트 개체를 소유할 수 있습니다.
  • TestLoader 클래스: 이 클래스는 로컬 또는 외부 파일에서 정의된 테스트 사례 및 도구 모음을 로드합니다. 해당 스위트와 케이스를 보유하는 테스트 스위트 객체를 내보냅니다.
  • TextTestRunner 클래스: 테스트를 실행하기 위해 테스트를 실행할 수 있는 표준 플랫폼을 제공합니다.
  • TestResults 클래스: 테스트 결과에 대한 표준 컨테이너를 제공합니다.

테스트 케이스 디자인 Python PyUnit을 사용한 테스트

단위 테스트는 새로운 테스트 케이스를 생성하는 데 사용할 수 있는 기본 클래스인 테스트 케이스를 제공합니다. 테스트 케이스를 설계하는 데 사용되는 세 가지 방법 세트가 있습니다.

테스트 케이스 디자인 Python

단위 테스트.TestCase

setUp()
teardown()

skipTest(aMesg:string)
fail(aMesg:string)

id():string
shortDescription():string

첫 번째 세트에는 사전 및 사후 테스트 후크가 있습니다. setup() 메서드는 각 테스트 루틴 이전에 시작되고, Teardown()은 루틴 이후에 시작됩니다.

두 번째 메서드 집합은 테스트 실행을 제어합니다. 두 방법 모두 메시지 문자열을 입력으로 사용하며 둘 다 진행 중인 테스트를 취소합니다. 그러나 Skiptest() 메서드는 현재 테스트를 중단하는 반면, fall() 메서드는 완전히 실패합니다.

마지막 또는 세 번째 방법은 테스트를 결정하는 데 도움이 됩니다. id() 메소드는 테스트케이스 객체와 테스트 루틴의 이름으로 구성된 문자열을 반환합니다. 그리고 방법은 짧습니다.Description()은 각 테스트 루틴이 시작될 때 docstr 주석을 반환합니다.

사용의 장점 Python 단위 테스트

  • 개발 주기 초기에 버그를 발견하는 데 도움이 됩니다.
  • 더 나은 프로그램을 작성하는 데 도움이 됩니다.
  • 다른 테스트 방법 및 도구와 쉽게 동기화됩니다.
  • 버그가 훨씬 줄어들 것입니다.
  • 결과가 매우 적으므로 향후 수정이 더 쉽습니다.