Golang 単体テストでコードをカバーするにはどうすればよいですか?方法: 組み込みのカバー ツールを使用します (go test -cover)。 testify のassert 関数などのサードパーティ ライブラリを利用します。実践例: カバー ツールとアサーション関数の証明を使用して、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 中国語 Web サイトの他の関連記事を参照してください。