초보자를위한 Github : Github Copilot을 사용한 TDD (Test-Driven Development)
Github Copilot의 세계로 뛰어 들어가는 Github for Beginners 시리즈의 다음 에피소드에 오신 것을 환영합니다. 우리는 지금 우리의 일곱 번째 에피소드에 있으며, 우리는 많은 근거를 다루었습니다. 블로그 또는 비디오로 이전 에피소드를 모두 확인할 수 있습니다.
오늘날 우리는 개발 과정에서 많은 필요하지만 역사적으로 지루한 부분 인 테스트 세계로 뛰어들 것입니다. 코드베이스가 점점 더 복잡해지면 특히 그렇습니다. 다행히도 Github Copilot을 사용 하여이 프로세스의 일부를 자동화 할 수 있습니다.
결국, 코드를 작성할 때 가장 기본적인 질문 중 하나는 다음과 같습니다.“작동합니까?”
테스트 101
GitHub Copilot을 사용하여 일부 테스트를 작성하는 방법에 뛰어 들기 전에 테스트, 중요한 이유 및 코드를 테스트하는 다양한 방법에 대해 이야기해야합니다. 테스트 테스트는 매우 깊은 주제이며, 우리는 여기서 표면에 만지겠습니다. 테스트의 뉘앙스를 다루는 것은 그 자체로 전체 과정이 될 것입니다.
그렇다면 테스트가 중요한 이유는 무엇입니까? 요컨대, 코드가 기대하는 것을 수행하는 방법입니다.

테스트는 다음과 같은 다양한 형태를 취할 수 있습니다.
- 수락 테스트 : 앱이 정의 된 기능 세트를 충족시키는 테스트.
- 통합 테스트 : 앱을 확인하는 테스트는 데이터베이스 및 API와 같은 다양한 시스템에서 대화 할 수 있습니다.
- 단위 테스트 : 테스트는 코드를 유닛이라는 작은 고립 된 조각으로 나누는 데 중점을 두었습니다. 이들은 개별 유닛이 당신이 기대하는 것을 정확하게 수행하도록합니다.
단위 테스트 작성
방금 다루면서 단위 테스트는 코드를 테스트하기 쉬운 작은 청크로 나누어 작동합니다. 각 개별 작품이 수행해야 할 일을 수행하도록하는지 확인하면 모든 조각을 모을 때 전체 앱이 작동한다는 확신이 높아집니다.
단위 테스트의 가장 큰 장점 중 하나는 프로세스를 자동화 할 수 있다는 것입니다. 대규모 테스트 배터리를 만든 후에는 문자 그대로 단일 명령으로 수천 개의 테스트를 실행할 수 있습니다. 이것은 응용 프로그램의 건강에 관한 좋은 지표를 제공합니다. 이러한 테스트를 정기적으로 실행하면 코드의 변경 사항이 예상하지 못했던 것을 깨뜨 렸는지 알 수 있습니다.
그렇다면 Github Copilot을 사용하여 일부 단위 테스트를 만드는 방법은 무엇입니까?
- 코드를 열고 테스트하려는 섹션을 강조 표시하십시오. 예를 들어 특정 기능을 강조 표시 할 수 있습니다.
- Coplot Chat을 열어보세요. Copilot은 사용 제안을 알 수 있습니다
/tests
테스트를 작성하는 슬래시 명령. - Coply를 다음과 같은 프롬프트로 보내십시오.
/tests add unit tests for my code
- Copilot이 테스트 프레임 워크를 구성 할 것인지 묻는 경우
Dismiss
.
- Copilot의 변경 사항을 이해하도록 계획 및 코드 제안을 검토하십시오.
- 클릭하십시오 새 파일에 추가하십시오 코드 제안 상단의 버튼은 테스트를 생성합니다.
- 새 파일을 저장하십시오.
- 터미널에서 다음 명령을 실행하여 테스트를 실행하십시오.
python -m pytest
축하해요! 방금 코드에 단위 테스트를 추가했습니다! 이 데모를 실제로보고 싶다면 비디오를보십시오!
시험 중심 개발
단위 테스트를 작성하는 방법을 보았으므로 테스트 중심 개발 (TDD)에 대해 조금 이야기 해 봅시다. TDD는 정확히 무엇입니까? 테스트를 사용하여 코드를 개발하는 방법을 유도하는 프로세스입니다. TDD를 사용할 때는 먼저 테스트를 작성한 다음 나중에 구현을 만듭니다.
프로세스에는 개발에 대한 생각을 조정하는 데 약간의 조정이 필요하지만 몇 가지 장점이 있습니다. 그것은 당신의 코드가 어떻게 행동하는지 확인하고 당신이 쓰고있는 테스트에서 테스트 할 것으로 예상되는 것을 테스트 할 수있는 기회를 제공합니다.
이 주위에 뇌를 감싸는 데 도움이 될 수있는 개념을 “빨간색, 녹색, 리팩터”라고합니다. 이 과정에서는 먼저 테스트를 생성하고 실패합니다. 그들은 심지어 건축조차하지 않을 수도 있습니다! 이것은 빨간색 단계입니다.

그런 다음 테스트를 통과 할 수있는 충분한 코드 만 작성합니다. 예를 들어, 숫자가 0보다 작은 경우 오류가 발생하는지 확인하는 테스트를 작성하는 경우 해당 조건에 해당 오류를 던질 수있는 충분한 코드 만 작성합니다. 테스트로 돌아 오면 이제 통과됩니다. 원하는 기능을 구현하기 위해 코드베이스를 적극적으로 변경했습니다. 이것은 녹색 단계입니다.
마지막으로, 코드를 멋지게 보이게하기 위해 리팩토링을 구현합니다. 이제 작동하므로 예쁘게 만드는 데 집중할 수 있습니다. 이 작업을 수행하는 시간 내내, 변경 사항이 아무것도 깨지지 않도록 단위 테스트를 계속 실행합니다. 당신이 추측했듯이, 이것은 리팩터 단계입니다.
Github Copilot은 TDD에 도움이 될 수 있습니다. Copilot이 할 수있는 숨겨진 작은 트릭 중 하나입니다. 코드가 존재하고 해당 정보를 기반으로 테스트를 생성 할 수 있습니다. 예를 들어, 이메일 유효성 검사 앱을 작업중인 경우 다음 프롬프트를 Copilot 채팅으로 보낼 수 있습니다.
I'm going to be adding a new validator function for usernames. Usernames must be between 3 and 16 characters, start with a letter or an underscore, not use multiple underscores to start, and after the first character chan have letters, numbers, and underscores. Just create the new test functions.
이 프롬프트는 귀하가 기대하는 기준을 제공하고 Copilot에 제공합니다. 그런 다음 Copilot 은이 프롬프트를 사용하여 해당 기능을 테스트하기 위해 단위 테스트를 생성합니다. 이 테스트를 실행하면 테스트 만 만들었 기 때문에 실패합니다. 빨간 무대.
이제 녹색 단계로 넘어 가려면 Coplot을 다음과 같은 프롬프트로 보낼 수 있습니다.
Create the implementation
Copilot은 이제 이러한 테스트가 통과되도록 코드를 생성합니다. 이제이 코드를 유효성 검사기에 추가하고 테스트를 다시 시작하면 통과합니다. 녹색 단계.
Copilot의 도움 덕분에 우리는 TDD를 살펴보고 작동하는 코드가 있습니다.
모범 사례
단위 테스트는 코드임을 기억하십시오. 다른 사람들에게 더 맛있게 만들려면 프로덕션 코드에 사용하는 것과 동일한 코딩 표준 중 몇 가지를 따라야합니다.
- 테스트에 문서를 추가하십시오
- 테스트를 정리하십시오
- 시험을 더 빨리 작성할 수있는 유틸리티를 만듭니다
- 코드를 변경하면서 테스트를 업데이트하십시오.
우리는 TDD 또는 단위 테스트의 모든 측면을 다룰 시간이 없지만 사용 가능한 많은 리소스가 있습니다. 다음은 시작할 수 있습니다.
다음 단계
테스트는 개발의 필수 부분입니다. Github Copilot과 같은 도구를 사용하면 테스트를 덜 지루하게 만드는 것이 코드를 개선하고 즐기는 코딩 부분에 더 많은 시간을 할애 할 수 있습니다.
Github Copilot을 무료로 사용할 수 있다는 것을 잊지 마십시오! 궁금한 점이 있으시면 Github 커뮤니티 스레드에서 팝업하면 응답하겠습니다. 시즌의 마지막 에피소드가 될이 시리즈의 다음 부분에 참여하십시오.
행복한 코딩!
코드를 테스트하고 모든 것을 원활하게 실행하는 데 도움이 필요하십니까? Github Copilot을 시도해보십시오!
작성자가 작성했습니다
Post Comment