테스트 중심 개발 (TDD)은 최근 몇 년 동안 상당한 인기를 얻었습니다. TDD는 테스트를 나중에 생각하는 대신 일일 코딩 프로세스에 테스트를 직접 통합합니다. 이 접근법은 코드 품질, 선명도 및 초점의 실질적인 개선을 산출합니다. 이 튜토리얼은 Python과 테스트 중심 개발 이해
핵심에서, TDD는 코드를 작성하기 전에 > 테스트를 작성하는 것과 관련이 있습니다. 실패한 테스트를 생성 한 다음 테스트 패스를 위해 코드를 작성하는 것으로 시작합니다. 이 테스트, 코드 및 정제의 반복주기는 기능이 완료 될 때까지 계속됩니다. 이 "테스트 우선"접근 방식은 문제의 설계 및 잠재적 에지 케이스를 신중하게 고려할 수 있습니다. 테스트를 만드는 행위는 코드의 논리, 반환 값 및 잠재적 예외를 통해 생각할 수 있도록 강요합니다.
이 체계적인 접근 방식은 일반적인 함정을 예방하는 데 도움이됩니다. 대체 시나리오 나 잠재적 오류를 고려하지 않고 초기 솔루션에만 초점을 맞추는 데 도움이됩니다. 사전에 테스트를 설계함으로써 포괄적 인 코드 커버리지를 보장하고 다양한 실행 경로를 해결합니다.
TDD 프로세스는 다음과 같이 요약 될 수 있습니다
nosetests
실패한 단위 테스트를 작성하십시오.
단위 테스트 패스를 만듭니다
<.> refactor.
각 기능에 대해이 사이클을 반복하십시오
tdd 및 민첩한 개발
TDD는 민첩한 개발 원칙과 완벽하게 정렬되어 깎아 지른 수량에 대한 점진적 고품질 업데이트를 강조합니다. 단위 테스트에서 제공하는 신뢰는 강력하고 신뢰할 수있는 코드를 제공하여 생산 문제를 최소화합니다.
TDD는 특히 쌍 프로그래밍 환경에서 빛을 발합니다. 개발자는 역할을 번갈아 가며 (하나는 테스트를 작성하고, 다른 하나는 코드를 작성 함) 참여, 초점 및 지속적인 코드 검토를 육성 할 수 있습니다. 이 협업 접근법은 효율성과 코드 품질을 극대화합니다. TDD는 또한 BDD (Behavior Driven Development)와 완벽하게 통합되며, 여기서 테스트는 엔드 투 엔드 기능 동작을 확인하기위한 수락 테스트로 표현됩니다.
파이썬 장치 테스트 구문
파이썬 장치 테스트에 사용되는 주요 방법으로는 , 및 가 포함됩니다. 다른 방법이 존재하지만 (Python Unit Test 문서 참조) 가장 자주 사용되는 것 중 하나입니다.
설치 및 사용
진행하기 전에 PIP : 를 사용하여 를 설치하십시오
프로젝트 종속성을 관리하기 위해 가상 환경 (예 : )을 사용하는 것이 좋습니다. 다음을 사용하여 테스트를 실행합니다<code class="language-bash">pip install nose</code>
로 시작하려면 테스트를 명명해야합니다. 또는 플래그를 사용하면 로깅 출력이 가능합니다. test_
> 옵션은 선택적 실행에 대한 테스트 태그를 활성화합니다
예 : 간단한 계산기를 테스트합니다
-s
메소드로 간단한 계산기를 만들고 를 사용하여 테스트를 작성하겠습니다. 처음에는 --nologcapture
메소드가 구현되지 않았기 때문에 테스트가 실패합니다. 이 방법을 구현 한 후 를 사용하여 --tags
예외를 확인하기 위해 비수막 입력을 처리하기 위해 추가 테스트가 추가됩니다. 두 입력이 모두 검증되도록 추가 테스트가 추가됩니다.
대체 장치 테스트 패키지
외에도 외에도 다른 인기있는 Python 테스트 프레임 워크에는 add
및 내장 unittest가 포함됩니다. 는 간결한 구문과 광범위한 기능을 제공합니다. 기본 테스트 요구를위한 탄탄한 기반을 제공합니다
로 디버깅
Python Debugger ()는 대화식 디버깅을위한 강력한 도구입니다. 를 코드에 삽입하여 중단 점을 설정하십시오. add (step), assertRaises
(계속), (목록), (인쇄) 및 (종료)와 같은 명령을 사용하여 코드의 실행을 탐색하고 검사합니다.
ValueError
결론
TDD는 코드 품질과 개발자 생산성을 향상시키는 귀중한 방법론입니다. 적응성은 모든 규모와 팀 구조의 프로젝트에 적합합니다. TDD를 워크 플로에 통합하면보다 강력하고 신뢰할 수 있으며 유지 관리 가능한 소프트웨어를 구축 할 수 있습니다.