Bagaimana untuk menguji dan menutup fungsi golang?

WBOY
Lepaskan: 2024-04-27 13:36:02
asal
842 orang telah melayarinya

Dalam Go, ujian dan liputan adalah penting untuk mengekalkan kod yang stabil dan boleh dipercayai. Pengujian dilakukan dengan menulis fungsi yang bermula dengan Ujian dan mengandungi penegasan untuk mengesahkan output yang diharapkan bagi fungsi tersebut. Gunakan arahan go test semasa menjalankan ujian dan untuk mengukur liputan anda boleh menggunakan perintah go test -coverprofile=coverage.out untuk menjana profil liputan. Untuk melihat laporan liputan, gunakan perintah go tool cover -html=coverage.out, yang akan memaparkan dalam penyemak imbas baris kod yang tidak dilaksanakan.

Bagaimana untuk menguji dan menutup fungsi golang?

Pengujian dan liputan fungsi Go

Dalam Go, ujian dan liputan adalah penting untuk mengekalkan kod yang stabil dan boleh dipercayai. Tutorial ini membimbing anda langkah demi langkah melalui penyediaan dan menjalankan ujian untuk fungsi Go anda.

Sediakan ujian

Mula-mula, buat fail yang berakhir dengan _test.go dan letakkannya dalam direktori di mana fungsi yang anda ingin uji terletak. _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)
    }
}
Salin selepas log masuk

运行测试

使用 go test 命令运行测试:

go test
Salin selepas log masuk

测量覆盖率

覆盖率衡量代码中执行的代码行数量。要测量覆盖率,可以使用 -cover 标志:

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

此命令将生成一个覆盖率配置文件,名为 coverage.out

查看覆盖率报告

可以使用 go tool cover 命令查看覆盖率报告:

go tool cover -html=coverage.out
Salin selepas log masuk

这将在默认浏览器中打开一个覆盖率报告,显示哪些代码行未被执行。

实战案例

考虑一个计算数组中元素和的函数:

package mypackage

func SumArray(arr []int) int {
    sum := 0
    for _, v := range arr {
        sum += v
    }
    return sum
}
Salin selepas log masuk

测试案例

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

运行测试和查看覆盖率

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

这将生成一个覆盖率报告,其中显示 SumArray

Seterusnya, tulis fungsi ujian yang namanya bermula dengan Ujian diikuti dengan nama fungsi yang ingin anda uji. Fungsi ujian perlu mengandungi berbilang penegasan untuk mengesahkan output yang dijangkakan bagi fungsi tersebut. 🎜rrreee🎜🎜Jalankan ujian🎜🎜🎜Jalankan ujian menggunakan perintah go test: 🎜rrreee🎜🎜Ukur liputan🎜🎜🎜Liputan mengukur bilangan baris kod. yang dilaksanakan dalam kod anda Untuk mengukur liputan, anda boleh menggunakan bendera -cover: 🎜rrreee🎜Arahan ini akan menjana fail konfigurasi liputan bernama coverage.out. 🎜🎜🎜Lihat laporan liputan🎜🎜🎜Anda boleh melihat laporan liputan menggunakan perintah go tool cover: 🎜rrreee🎜Ini akan membuka laporan liputan dalam penyemak imbas lalai anda yang menunjukkan baris kod yang tidak dilaksanakan . 🎜🎜🎜Kes Praktikal🎜🎜🎜Pertimbangkan fungsi yang mengira jumlah elemen dalam tatasusunan: 🎜rrreee🎜🎜Kes Ujian🎜🎜rrreee🎜🎜Jalankan ujian dan lihat liputan🎜🎜🎜 ini akan menjana liputan menunjukkan SumArray fungsi telah dilaksanakan. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menguji dan menutup fungsi 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