Rumah > pembangunan bahagian belakang > Golang > Apakah alatan yang ada untuk menguji dan liputan fungsi golang?

Apakah alatan yang ada untuk menguji dan liputan fungsi golang?

WBOY
Lepaskan: 2024-04-26 21:30:02
asal
533 orang telah melayarinya

Alat ujian dan liputan fungsi: Alat ujian: Pergi ujian perpustakaan standard saksikan/tegaskan alatan liputan: pergi testgopcover

Apakah alatan yang ada untuk menguji dan liputan fungsi golang?

Alat ujian dan liputan fungsi Go

Dalam pembangunan Go, fungsi diuji dan Mengukur liputan adalah penting untuk memastikan ketepatan dan kebolehpercayaan kod anda. Ekosistem Go menyediakan pelbagai alat matang untuk tujuan ini.

Alat Pengujian

  • ujian untuk Perpustakaan Go Standard: Pustaka standard Go menyediakan pakej ujian terbina dalam untuk menulis dan menjalankan kes ujian. Ia menyediakan API mesra yang membolehkan anda mentakrifkan ujian dan penegasan dengan mudah.

    import (
      "testing"
    
      "github.com/stretchr/testify/assert"
    )
    
    func TestAdd(t *testing.T) {
      assert.Equal(t, 10, Add(5, 5))
    }
    Salin selepas log masuk
  • tegaskan/tegaskan: Ini ialah perpustakaan pihak ketiga yang menyediakan satu siri fungsi penegasan yang membolehkan anda mengesahkan nilai yang dijangkakan dengan lebih mudah berbanding hasil sebenar. Ia menyediakan sintaks yang bersih dan boleh dibaca untuk ujian menulis.

    import "github.com/stretchr/testify/assert"
    
    func TestAdd(t *testing.T) {
      result := Add(5, 5)
      assert.True(t, result == 10)
    }
    Salin selepas log masuk

Alat Liputan

  • go test: Perintah go test termasuk alat liputan terbina dalam yang menjana laporan liputan kod semasa menjalankan ujian. Ia menyediakan maklumat liputan terperinci mengikut fail, pakej dan fungsi. go test 命令包括一个内置的覆盖率工具,它可以在运行测试时生成代码覆盖率报告。它提供了按文件、包和函数的细粒度覆盖率信息。

    go test -coverprofile=coverage.out
    Salin selepas log masuk
  • gopcover:这是一个轻量级的第三方覆盖率工具,它生成更详细的报告,包括未覆盖的代码行。它还可以生成可视化覆盖率报告。

    gopcover -v -o coverage.html
    Salin selepas log masuk

实战案例

下面是一个使用 go testtesting 库编写测试的示例:

package main

import (
    "testing"
)

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

func TestAdd(t *testing.T) {
    tests := []struct {
        a, b int
        expected int
    }{
        {1, 2, 3},
        {3, 4, 7},
    }

    for _, test := range tests {
        t.Run(string(test.a)+"+"+string(test.b), func(t *testing.T) {
            result := Add(test.a, test.b)
            if result != test.expected {
                t.Errorf("Expected %d, got %d", test.expected, result)
            }
        })
    }
}
Salin selepas log masuk

在这个示例中,TestAdd 函数包含一个切片,其中包含输入值和预期的输出值。对于每个测试用例,函数运行测试并使用 t.Errorfrrreee

🎜🎜🎜gopcover🎜: Ini ialah alat liputan pihak ketiga yang ringan yang menjana laporan yang lebih terperinci termasuk baris kod yang tidak dilindungi. Ia juga boleh menjana laporan liputan visual. 🎜rrreee🎜🎜🎜🎜Kes praktikal🎜🎜🎜Berikut ialah contoh menulis ujian menggunakan pustaka go test dan testing: 🎜rrreee🎜Dalam contoh ini, Fungsi TestAdd mengandungi kepingan yang mengandungi nilai input dan nilai output yang dijangkakan. Untuk setiap kes ujian, fungsi menjalankan ujian dan melaporkan sebarang ketidakpadanan menggunakan t.Errorf. 🎜

Atas ialah kandungan terperinci Apakah alatan yang ada untuk menguji dan liputan fungsi golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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