Go에서 테스트와 적용 범위는 안정적이고 신뢰할 수 있는 코드를 유지하는 데 중요합니다. 테스트는 Test로 시작하고 함수의 예상 출력을 확인하기 위한 어설션을 포함하는 함수를 작성하여 수행됩니다. 테스트를 실행할 때 go test 명령을 사용하고, 적용 범위를 측정하려면 go test -coverprofile=coverage.out 명령을 사용하여 적용 범위 프로필을 생성할 수 있습니다. 적용 범위 보고서를 보려면 go toolcover -html=coverage.out 명령을 사용하세요. 이 명령은 실행되지 않은 코드 줄을 브라우저에 표시합니다.
Go 기능의 테스트 및 적용 범위
Go에서 테스트 및 적용 범위는 안정적이고 신뢰할 수 있는 코드를 유지하는 데 중요합니다. 이 튜토리얼에서는 Go 기능에 대한 테스트를 설정하고 실행하는 과정을 단계별로 안내합니다.
테스트 설정
먼저 _test.go
로 끝나는 파일을 생성하고 테스트하려는 함수가 있는 디렉터리에 넣습니다. _test.go
结尾的文件,并将其放置在要测试的函数所在的目录中。
下一步,编写一个测试函数,该函数的名称以 Test
开头,后跟要测试的函数的名称。测试函数需要包含多个断言,以验证函数的预期输出。
package mypackage import ( "testing" ) func TestAdd(t *testing.T) { expected := 10 result := Add(5, 5) if result != expected { t.Errorf("Expected %d, got %d", expected, result) } }
运行测试
使用 go test
命令运行测试:
go test
测量覆盖率
覆盖率衡量代码中执行的代码行数量。要测量覆盖率,可以使用 -cover
标志:
go test -coverprofile=coverage.out
此命令将生成一个覆盖率配置文件,名为 coverage.out
。
查看覆盖率报告
可以使用 go tool cover
命令查看覆盖率报告:
go tool cover -html=coverage.out
这将在默认浏览器中打开一个覆盖率报告,显示哪些代码行未被执行。
实战案例
考虑一个计算数组中元素和的函数:
package mypackage func SumArray(arr []int) int { sum := 0 for _, v := range arr { sum += v } return sum }
测试案例
func TestSumArray(t *testing.T) { arr := []int{1, 2, 3, 4, 5} expected := 15 result := SumArray(arr) if result != expected { t.Errorf("Expected %d, got %d", expected, result) } }
运行测试和查看覆盖率
go test -coverprofile=coverage.out go tool cover -html=coverage.out
这将生成一个覆盖率报告,其中显示 SumArray
Test
로 시작하고 그 뒤에 테스트하려는 함수 이름이 오는 테스트 함수를 작성합니다. 테스트 함수에는 함수의 예상 출력을 확인하기 위해 여러 어설션이 포함되어야 합니다. 🎜rrreee🎜🎜테스트 실행🎜🎜🎜 go test
명령을 사용하여 테스트를 실행하세요. 🎜rrreee🎜🎜커버리지 측정🎜🎜🎜커버리지는 코드에서 실행되는 코드 줄 수를 측정합니다. 적용 범위를 측정하려면 -cover
플래그를 사용할 수 있습니다. 🎜rrreee🎜이 명령은 coverage.out
이라는 적용 범위 구성 파일을 생성합니다. 🎜🎜🎜커버리지 보고서 보기🎜🎜🎜go tool Cover
명령을 사용하여 커버리지 보고서를 볼 수 있습니다. 🎜rrreee🎜이렇게 하면 구현되지 않은 코드 줄을 보여주는 기본 브라우저에서 커버리지 보고서가 열립니다. . 🎜🎜🎜실용 사례🎜🎜🎜배열에 있는 요소의 합을 계산하는 함수를 생각해 보세요. 🎜rrreee🎜🎜테스트 사례🎜🎜rrreee🎜🎜테스트를 실행하고 적용 범위를 확인하세요🎜🎜rrreee🎜이렇게 하면 적용 범위 보고서가 생성됩니다. SumArray 함수의 모든 코드 줄이 실행되었음을 보여줍니다. 🎜위 내용은 golang 기능을 테스트하고 다루는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!