테스트와 분리된 코드에 대한 테스트 범위
더 깔끔한 코드베이스를 위해 테스트 파일을 별도로 구성하고 테스트를 공개 API 상호 작용으로 제한하는 이점에도 불구하고 , 테스트 중인 대상 패키지(이 경우 api_client)에 대한 적용 범위를 확보하는 데 어려움이 있습니다.
이 문제를 해결하려면 테스트를 실행할 때 패키지 이름과 함께 -coverpkg 플래그를 활용할 수 있습니다.
go test -cover -coverpkg "api_client" "api_client_tests"
이 명령은 api_client 패키지에 대해 활성화된 적용 범위로 테스트를 실행합니다.
코드 파일에서 테스트 파일을 분리하는 것이 허용되지만 Go의 표준 접근 방식에서 벗어난다는 점에 유의하는 것이 중요합니다. 즉, 패키지 전용 변수나 함수는 별도의 디렉토리에 있더라도 패키지 외부의 테스트에서는 액세스할 수 없습니다.
테스트에서 공개 API 메소드에만 액세스해야 하는 블랙박스 테스트를 시행하려면, 파일을 물리적으로 이동하지 않고도 별도의 패키지에 테스트를 유지할 수 있습니다. 예:
<code class="go">// api_client.go package api_client // Private variable not accessible outside package var privateVar = 10 func PublicMethod() {}</code>
<code class="go">// api_client_test.go package api_client_tests import ( "testing" "api_client" // Import api_client package ) func TestPublicMethod(t *testing.T) { api_client.PublicMethod() }</code>
이 예에서 api_client.go의 privateVar 및 Method 함수는 테스트 파일에 액세스할 수 없으므로 테스트는 공개 API를 통해서만 상호 작용합니다.
위 내용은 Go에서 테스트와 분리된 코드에 대한 테스트 적용 범위를 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!