Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menutup kod dalam ujian unit Golang?

Bagaimana untuk menutup kod dalam ujian unit Golang?

WBOY
WBOYasal
2024-06-01 12:40:56738semak imbas

Bagaimana untuk menutup kod dalam ujian unit Golang? Kaedah: Gunakan alat penutup terbina dalam (go test -cover). Gunakan perpustakaan pihak ketiga, seperti fungsi assert testimoni. Contoh praktikal: Gunakan alat penutup dan saksikan fungsi penegasan untuk mengukur liputan kod fungsi Faktor dan jana laporan HTML untuk memaparkan maklumat terperinci.

如何覆盖 Golang 单元测试中的代码?

Bagaimana untuk menutup kod dalam ujian unit Golang?

Pengenalan

Liputan kod ialah metrik yang mengukur bahagian kod sasaran yang diliputi oleh suite ujian. Dalam ujian unit, liputan kod yang tinggi menunjukkan bahawa kebanyakan logik perniagaan telah diuji, meningkatkan kebolehpercayaan ujian.

Kaedah

1. Gunakan alat liputan kod

Bahasa Go menyediakan alat cover untuk mengukur liputan kod. Untuk menggunakannya, selain daripada perintah go test biasa, anda juga perlu menambah bendera -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.outrrreee

🎜2. Gunakan perpustakaan pihak ketiga 🎜🎜 🎜Terdapat banyak perpustakaan pihak ketiga yang boleh menyediakan laporan liputan kod yang lebih terperinci. Sebagai contoh, anda boleh menggunakan fungsi assert dalam testify: 🎜rrreee🎜🎜Kes praktikal🎜🎜🎜Berikut ialah fungsi bahasa Go yang ringkas dan ujian unit berkaitan: 🎜rrreeerrreee 🎜 Jalankan ujian: 🎜rrreee🎜 Kemudian, gunakan go tool cover -html=cover.out untuk menjana laporan HTML yang menunjukkan butiran liputan. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menutup kod dalam ujian unit Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn