기능 테스트 및 적용 범위 도구: 테스트 도구: Go 표준 라이브러리 테스트테스트/어설션 적용 범위 도구: go testgopcover
Go 기능 테스트 및 적용 범위 도구
Go 개발에서는 기능이 테스트되고 적용 범위를 측정하는 것이 중요합니다. 코드의 정확성과 신뢰성. Go 생태계는 이러한 목적을 위해 다양한 성숙한 도구를 제공합니다.
Go 표준 라이브러리용 테스트 도구
testing: Go 표준 라이브러리는 테스트 케이스 작성 및 실행을 위한 내장 테스트 패키지를 제공합니다. 테스트와 어설션을 쉽게 정의할 수 있는 친숙한 API를 제공합니다.
import ( "testing" "github.com/stretchr/testify/assert" ) func TestAdd(t *testing.T) { assert.Equal(t, 10, Add(5, 5)) }
testify/assert: 실제 결과와 비교하여 예상 값을 더 쉽게 확인할 수 있는 일련의 어설션 기능을 제공하는 타사 라이브러리입니다. 테스트 작성을 위한 깔끔하고 읽기 쉬운 구문을 제공합니다.
import "github.com/stretchr/testify/assert" func TestAdd(t *testing.T) { result := Add(5, 5) assert.True(t, result == 10) }
Coverage Tool
go test: go test
명령에는 테스트를 실행할 때 코드 검사 보고서를 생성하는 내장 검사 도구가 포함되어 있습니다. 파일별, 패키지별, 기능별 세분화된 커버리지 정보를 제공합니다. go test
命令包括一个内置的覆盖率工具,它可以在运行测试时生成代码覆盖率报告。它提供了按文件、包和函数的细粒度覆盖率信息。
go test -coverprofile=coverage.out
gopcover:这是一个轻量级的第三方覆盖率工具,它生成更详细的报告,包括未覆盖的代码行。它还可以生成可视化覆盖率报告。
gopcover -v -o coverage.html
实战案例
下面是一个使用 go test
和 testing
库编写测试的示例:
package main import ( "testing" ) func Add(a, b int) int { return a + b } func TestAdd(t *testing.T) { tests := []struct { a, b int expected int }{ {1, 2, 3}, {3, 4, 7}, } for _, test := range tests { t.Run(string(test.a)+"+"+string(test.b), func(t *testing.T) { result := Add(test.a, test.b) if result != test.expected { t.Errorf("Expected %d, got %d", test.expected, result) } }) } }
在这个示例中,TestAdd
函数包含一个切片,其中包含输入值和预期的输出值。对于每个测试用例,函数运行测试并使用 t.Errorf
rrreee
go test
및 testing
라이브러리를 사용하여 테스트를 작성하는 예입니다. 🎜rrreee🎜이 예에서는 TestAdd
함수에는 입력 값과 예상 출력 값이 포함된 조각이 포함되어 있습니다. 각 테스트 사례에 대해 함수는 테스트를 실행하고 t.Errorf
를 사용하여 불일치를 보고합니다. 🎜위 내용은 golang 기능을 테스트하고 적용하기 위한 도구는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!