Golang 단위 테스트에서 코드를 어떻게 다루나요? 방법: 내장된 덮개 도구를 사용합니다(테스트 - 덮개로 이동). testify의 주장 기능과 같은 타사 라이브러리를 활용하세요. 실제 예: Cover 도구와 Testify 주장 기능을 사용하여 Factorial 함수의 코드 적용 범위를 측정하고 HTML 보고서를 생성하여 자세한 정보를 표시합니다.
Golang 단위 테스트에서 코드를 어떻게 다루나요?
소개
코드 적용 범위는 테스트 모음에서 적용되는 대상 코드의 점유율을 측정하는 측정항목입니다. 단위 테스트에서 코드 적용 범위가 높다는 것은 대부분의 비즈니스 로직이 테스트되었음을 의미하므로 테스트의 신뢰성이 향상됩니다.
방법
1. 코드 적용 도구 사용
Go 언어는 코드 적용 범위를 측정하는 cover
도구를 제공합니다. 이를 사용하려면 일반적인 go test
명령 외에도 -cover
플래그도 추가해야 합니다: cover
工具来测量代码覆盖率。要使用它,除了正常的 go test
命令外,还需要添加 -cover
标志:
go test -cover
2. 利用第三方库
还有许多第三方库可以提供更详细的代码覆盖率报告。例如,可以使用 testify
中的 assert
函数:
import ( "testing" "github.com/stretchr/testify/assert" ) func TestSomething(t *testing.T) { assert.Equal(t, 1, something()) // 覆盖了 something() 函数的 return 语句 }
实战案例
下面是一个简单的 Go 语言函数和相关的单元测试:
// main.go package main func Factorial(n int) int { if n == 0 { return 1 } return n * Factorial(n-1) } func main() { println(Factorial(5)) // 输出:120 }
// factorial_test.go package main import "testing" func TestFactorial(t *testing.T) { // 记录 Factorial 函数的覆盖率 t.Run("Cover", func(t *testing.T) { cases := []int{0, 1, 5, 10} for _, n := range cases { Factorial(n) } }) }
运行测试:
go test -cover -coverprofile=cover.out
然后,使用 go tool cover -html=cover.out
rrreee
testify
에서 assert
함수를 사용할 수 있습니다. 🎜rrreee🎜🎜실용 사례🎜🎜🎜다음은 간단한 Go 언어 함수 및 관련 단위 테스트입니다. 🎜rrreeerrreee 🎜 테스트 실행: 🎜rrreee🎜 그런 다음 go tool Cover -html=cover.out
을 사용하여 적용 범위 세부 정보를 표시하는 HTML 보고서를 생성하세요. 🎜위 내용은 Golang 단위 테스트에서 코드를 다루는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!