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

Bagaimana untuk menutup kod dalam ujian unit Golang?

WBOY
Lepaskan: 2024-06-01 12:40:56
asal
737 orang telah melayarinya

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
Salin selepas log masuk

2. 利用第三方库

还有许多第三方库可以提供更详细的代码覆盖率报告。例如,可以使用 testify 中的 assert 函数:

import (
    "testing"
    "github.com/stretchr/testify/assert"
)

func TestSomething(t *testing.T) {
    assert.Equal(t, 1, something()) // 覆盖了 something() 函数的 return 语句
}
Salin selepas log masuk

实战案例

下面是一个简单的 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
}
Salin selepas log masuk
// 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)
        }
    })
}
Salin selepas log masuk

运行测试:

go test -cover -coverprofile=cover.out
Salin selepas log masuk

然后,使用 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan