Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk meningkatkan ujian dan liputan fungsi golang?

Bagaimana untuk meningkatkan ujian dan liputan fungsi golang?

王林
王林asal
2024-04-28 08:45:011111semak imbas

Bagaimana untuk meningkatkan liputan ujian fungsi Golang? Ukur liputan: Gunakan arahan go test -cover. Tambah pengecualian kes ujian: Tambah pengecualian kes ujian untuk laluan kod yang tidak dilaksanakan. Menggunakan profil liputan: Gunakan go test -coverprofile=cover.out untuk membuat profil liputan. Gunakan alat penutup: Gunakan penutup alat go -html=cover.out untuk melihat laporan liputan terperinci.

Bagaimana untuk meningkatkan ujian dan liputan fungsi golang?

Cara meningkatkan liputan ujian fungsi Golang

Pengenalan

Menguji langkah liputan bahagian mana aplikasi dilaksanakan dalam ujian. Liputan tinggi menunjukkan bahawa majoriti laluan kod dalam aplikasi telah dilaksanakan semasa ujian, dengan itu meningkatkan keyakinan terhadap kebolehpercayaan perisian. Artikel ini akan membimbing anda tentang cara meningkatkan liputan ujian fungsi Golang anda.

Ukur liputan

Untuk mengukur liputan, anda boleh menggunakan perintah go test -cover. Perintah ini akan mencetak laporan liputan selepas ujian dijalankan. go test -cover 命令。该命令将在测试运行后打印覆盖率报告。

go test -cover

实用案例

考虑以下 Golang 函数:

func Sum(a, b int) int {
    return a + b
}

初始测试覆盖率报告如下:

coverage: 50.0% of statements

该覆盖率表明只有 50% 的代码在测试中得到了执行。要提高覆盖率,需要添加测试用例外界因素,以执行未执行的代码路径。

添加测试用例外界因素

对于 Sum 函数,可以添加如下测试用例外界因素,以覆盖未执行的代码路径:

func TestSumNegative(t *testing.T) {
    result := Sum(-1, -2)
    if result != -3 {
        t.Errorf("Expected -3, got %d", result)
    }
}

这个测试用例外界因素测试了函数是否处理负数输入。添加此测试用例外界因素后,覆盖率报告将如下所示:

coverage: 100.0% of statements

使用覆盖率配置文件

为了更容易地跟踪与覆盖率相关的更改,可以使用覆盖率配置文件。覆盖率配置文件包含了覆盖率数据,可用于在不同的测试运行之间进行比较。要创建覆盖率配置文件,请使用 go test -coverprofile=cover.out 命令。

go test -coverprofile=cover.out

使用 cover 工具

cover 工具是一个交互式工具,使您可以浏览代码覆盖率信息。要使用 cover

go tool cover -html=cover.out

Kes Praktikal

Pertimbangkan fungsi Golang berikut: rrreee

Laporan liputan ujian awal adalah seperti berikut:

rrreee

Liputan ini menunjukkan bahawa hanya 50% kod telah dilaksanakan dalam ujian. Untuk meningkatkan liputan, pengecualian kes ujian perlu ditambah untuk melaksanakan laluan kod yang tidak dilaksanakan. 🎜🎜🎜Tambah pengecualian kes ujian🎜🎜🎜Untuk fungsi Sum, anda boleh menambah pengecualian kes ujian berikut untuk menutup laluan kod yang tidak dilaksanakan: 🎜rrreee🎜Pengecualian kes ujian ini menguji sama ada fungsi tersebut Mengendalikan negatif input. Selepas menambah pengecualian kes ujian ini, laporan liputan akan kelihatan seperti ini: 🎜rrreee🎜🎜Menggunakan Profil Liputan🎜🎜🎜Untuk menjejaki perubahan berkaitan liputan dengan lebih mudah, anda boleh menggunakan profil liputan. Profil liputan mengandungi data liputan yang boleh digunakan untuk perbandingan antara larian ujian yang berbeza. Untuk membuat profil liputan, gunakan perintah go test -coverprofile=cover.out. 🎜rrreee🎜🎜Gunakan alat cover 🎜🎜🎜 Alat cover ialah alat interaktif yang membolehkan anda menyemak imbas maklumat liputan kod. Untuk menggunakan alat cover, jalankan arahan berikut: 🎜rrreee🎜Ini akan membuka laporan HTML dalam penyemak imbas lalai anda yang menunjukkan data liputan terperinci untuk setiap fungsi dan kaedah. 🎜🎜🎜Ringkasan🎜🎜🎜Dengan menambahkan pengecualian kes ujian dan menggunakan profil liputan, anda boleh meningkatkan liputan ujian fungsi Golang anda. Liputan tinggi meningkatkan keyakinan terhadap kebolehpercayaan perisian dan membantu mengenal pasti kawasan yang belum diuji dalam kod. 🎜

Atas ialah kandungan terperinci Bagaimana untuk meningkatkan ujian dan liputan fungsi 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