Golang에서 단위 테스트를 작성하는 방법?

Golang Eseo Dan Wi Teseuteuleul Jagseonghaneun Bangbeob



Go 개발자라면 테스트가 코드 품질을 보장하는 데 얼마나 중요한지 알고 있을 것입니다. 글쓰기 단위 테스트 개발 프로세스의 필수 부분이며 버그를 조기에 발견하여 장기적으로 시간과 비용을 절약할 수 있습니다. 이 기사에서는 작성 방법에 대해 설명합니다. 단위 테스트 골랑에서.

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

첫 번째 단계는 무엇을 이해하는 것입니다. 단위 테스트 수단. 단위 테스트 각각이 예상대로 작동하는지 확인하기 위해 작은 코드 단위 또는 모듈을 테스트하는 프로세스를 말합니다. 단위 테스트 코드에서 문제를 제거하고 코드 안정성을 개선하며 코드를 업데이트할 때 정확성을 보장하는 데 사용됩니다. 소프트웨어 테스트의 초기 단계는 단위 테스트 , UI 테스트 및 통합 테스트가 이어집니다.

테스트 패키지

골랑에서, 단위 테스트 라는 패키지를 사용하여 수행됩니다. 테스트 . 이 패키지는 코드를 테스트할 수 있는 다양한 기능을 제공합니다. Go 코드는 테스트 패키지의 도움으로 자동으로 테스트할 수 있습니다.







테스트할 예제 프로그램

테스트를 작성하기 전에 분석할 코드가 필요합니다. 단위 테스트 . 우리는 두 개의 숫자를 더하는 작은 프로그램을 만들 것입니다.



패키지 메인

수입 (
'fmt'
)
funcAdd ( 정수 , 정수 ) 정수 {
반품 +
}

기능 메인 ( ) {
fmt. Println ( 추가하다 ( 2 , ) )
}

위의 코드는 다음을 정의합니다. 추가하다() 두 개의 숫자를 더하는 함수, 그리고 , 입력으로 결과를 정수로 출력합니다. 숫자 2와 3을 추가하는 것이 결과를 인쇄하기 전에 main 함수가 수행하는 전부입니다.







이동 중에 단위 테스트를 작성하는 규칙

모든 Go 프로젝트에는 해당 프로젝트의 모든 테스트가 포함된 별도의 테스트 파일이 있어야 합니다. 파일은 테스트 중인 파일과 이름이 같아야 하며 _test.go 파일 이름 끝에 추가됩니다. 예를 들어 이름이 지정된 파일을 테스트하려는 경우 계산기.go , 테스트 파일의 이름을 지정해야 합니다. calculator_test.go .

에 대한 표준 관행입니다. 테스트 파일로 이동 평가 중인 코드와 동일한 패키지 또는 디렉토리에 있어야 합니다. go build 명령을 사용할 때 컴파일러는 이러한 파일을 생성하지 않으므로 배포에 표시되는 것에 대해 걱정할 필요가 없습니다.



쓰기 위해 단위 테스트 Go에서는 다음을 사용해야 합니다. 테스트 패키지. 단어로 각 테스트 기능을 시작할 수 있습니다. 시험 그런 다음 테스트하려는 항목에 대한 설명을 추가합니다. 예를 들어, TestAddition 또는 테스트 빼기 . 그런 다음 테스트 중인 함수가 예상 결과를 반환하는지 확인하는 테스트 코드를 작성할 수 있습니다.

Go에서 각 테스트 함수는 다음 문장으로 시작해야 합니다. t := 테스트.T{}. 이 문은 새로운 테스트 테스트의 통과 또는 실패 여부를 확인하는 데 사용할 수 있는 개체입니다. 그런 다음 t.오류f() 테스트에 실패하면 오류 메시지를 인쇄하는 기능.

테스트 코드를 작성하는 방법?

Go에서 단위 테스트를 작성할 때 테스트하려는 패키지를 지정하는 것부터 시작하는 것이 중요합니다. 테스트 패키지를 가져온 후 다음을 포함하여 패키지가 내보내는 다양한 유형 및 메서드에 액세스할 수 있습니다. 테스팅.T 유형. 그런 다음 테스트 논리 자체는 키워드로 시작하는 함수로 작성됩니다. '시험' 다음과 같이 설명이 포함된 이름이 뒤따릅니다. 테스트추가() . 이 함수 내에 테스트용 코드와 예상되는 동작을 확인하는 데 필요한 어설션을 포함할 수 있습니다.

요약하자면 Go에서 테스트의 특징은 다음과 같습니다.

  • 유일한 필수 매개변수는 다음과 같습니다. t *테스트.T
  • 테스트 기능은 Test라는 단어로 시작한 다음 대문자로 시작하는 단어나 구가 옵니다.
  • 실패를 나타내기 위해 테스트 기능은 다음 중 하나를 호출해야 합니다. t.Errorf 또는 t.실패, 오류를 일으키지 않고 추가 디버그 정보를 제공하기 위해 t.Log를 사용할 수 있습니다.
  • 실패하지 않는 디버그 정보를 제공하려면 t.Log를 사용하십시오.
  • 테스트는 다음 이름의 파일에 저장됩니다. foo_test.go , 예를 들어, math_test.go .

파일을 저장한 후 닫습니다.

패키지 메인

수입 (
'테스트'
)

funcTestAdd ( * 테스트. ) {
결과 := 추가하다 ( 2 , )
만약에 결과 != 5 {
티. 오류 f ( '추가(2, 3) = %d; 5 원함' , 결과 )
}
}

그만큼 추가하다() 기능은 다음에 의해 테스트됩니다. 테스트추가() 이 테스트에서 정의된 함수입니다. 숫자 2와 3을 사용하여 Add를 호출한 다음 결과가 5임을 확인합니다. t.오류f() 호출됩니다.

마지막으로 Go에는 다음과 같은 내장 테스트 도구가 있다는 것을 아는 것이 중요합니다. 테스트하러 가십시오. 이 도구는 프로젝트의 모든 테스트를 실행하고 결과 보고서를 제공합니다. 테스트하러 가기 테스트를 시작하려면 프로젝트 디렉토리에 있는 동안 터미널에 입력해야 합니다. 그 결과 해당 디렉토리의 모든 테스트가 실행됩니다.

< 강한 > 테스트하러 가다 < 시험 - 파일 - 이름 > _시험. 가다 강한 >

단위 테스트 결과

출력에는 통과, 실패 또는 건너뛴 테스트 기능이 표시됩니다.

통과 또는 확인 코드가 의도한 대로 작동하고 있음을 나타냅니다. 당신은받을 것이다 실패하다 테스트가 실패하는 경우.

그만큼 _test.go 접미사는 go test 하위 명령이 파일에서 확인하는 유일한 것입니다. 그런 다음 go test는 func와 같은 특수 기능에 대해 해당 파일을 검색합니다. 테스트Xxx 그리고 다른 몇 가지. 빌드를 테스트하고 이러한 함수를 올바르게 호출하고, 실행하고, 수집하고, 결과를 보고하고, 마지막으로 임시 메인 패키지의 모든 것을 정리합니다.

마지막 단계는 테스트를 개발 워크플로에 통합하는 것입니다. 가장 좋은 방법은 코드를 리포지토리에 커밋할 때마다 테스트를 실행하는 것입니다. 테스트를 개발 워크플로에 통합하면 코드가 지속적으로 테스트되고 모든 문제가 배포 전에 해결됩니다.

결론

글쓰기 단위 테스트 코드가 확장 가능하고 기능적이며 효과적임을 보장하기 때문에 소프트웨어 개발의 중요한 구성 요소입니다. Go 테스트 라이브러리는 쉽고 간단하게 사용할 수 있습니다. Golang을 만들 수 있어야 합니다. 단위 테스트 위에 나열된 절차에 따라 최고 품질의 테스트를 개발 워크플로에 통합하여 코드를 지속적으로 테스트하고 모든 문제가 배포 전에 해결되도록 해야 합니다.