Pengenalan kepada rangka kerja ujian Golang

王林
Lepaskan: 2023-08-10 23:40:49
asal
1111 orang telah melayarinya

Pengenalan kepada rangka kerja ujian Golang

Pengenalan kepada rangka kerja ujian Golang dan contoh kod

Pengenalan:
Dalam proses pembangunan perisian, ujian adalah bahagian yang penting. Sebagai bahasa pengaturcaraan yang cekap dan boleh dipercayai, rangka kerja ujian Golang juga patut diberi perhatian dan pembelajaran kami. Artikel ini akan memperkenalkan beberapa rangka kerja ujian Golang yang biasa digunakan dan menyediakan contoh kod yang sepadan untuk membantu pembaca memahami dengan lebih baik.

1. Rangka kerja ujian terbina dalam
Pustaka standard Golang dilengkapi dengan rangka kerja ujian, yang menyediakan satu siri fungsi dan kaedah untuk menulis kes ujian dan menjalankan ujian. Berikut ialah contoh mudah:

package main

import "testing"

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

func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Add(2, 3) = %d; want 5", result)
    }
}
Salin selepas log masuk

Seperti yang ditunjukkan di atas, kami mula-mula mentakrifkan fungsi Tambah yang menerima dua integer sebagai parameter dan mengembalikan jumlahnya. Seterusnya, kami menggunakan fungsi Ujian rangka kerja ujian untuk menentukan fungsi ujian TestAdd. Dalam fungsi TestAdd, kami memanggil fungsi Tambah dan bandingkan hasilnya dengan hasil yang dijangkakan, jika tidak sama, gunakan kaedah t.Errorf untuk mengeluarkan mesej ralat.

Gunakan arahan go test untuk menjalankan ujian:

$ go test
PASS
ok      _/path/to/package    0.019s
Salin selepas log masuk
Salin selepas log masuk

Kita boleh lihat daripada output yang ujian itu lulus.

2. Rangka kerja Testify pihak ketiga
Testify ialah rangka kerja ujian Golang yang popular dan berkuasa, yang menyediakan pelbagai fungsi penegasan yang mudah dan kaedah tambahan. Berikut ialah contoh menggunakan rangka kerja Testify:

package main

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

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

func TestAdd(t *testing.T) {
    result := Add(2, 3)
    assert.Equal(t, 5, result, "Add(2, 3) should be equal to 5")
}
Salin selepas log masuk

Dalam contoh di atas, kami telah menggunakan assert.Fungsi yang sama bagi rangka kerja Testify untuk penegasan. Ia menerima tiga parameter: t mewakili objek ujian, 5 mewakili hasil yang dijangkakan, dan keputusan mewakili hasil sebenar. Jika kedua-duanya tidak sama, mesej ralat akan dikeluarkan.

Jalankan ujian:

$ go test
PASS
ok      _/path/to/package    0.019s
Salin selepas log masuk
Salin selepas log masuk

Kita boleh lihat ujian itu juga lulus.

3. Ujian penanda aras
Pengujian penanda aras sangat berguna apabila mengoptimumkan prestasi. Rangka kerja ujian Golang menyediakan fungsi Penanda Aras untuk melaksanakan ujian penanda aras. Berikut ialah contoh penanda aras:

package main

import (
    "testing"
)

func Fibonacci(n int) int {
    if n <= 1 {
        return n
    }
    return Fibonacci(n-1) + Fibonacci(n-2)
}

func BenchmarkFibonacci(b *testing.B) {
    for i := 0; i < b.N; i++ {
        Fibonacci(20)
    }
}
Salin selepas log masuk

Dalam contoh di atas, kami telah mentakrifkan fungsi Fibonacci, yang digunakan untuk mengira jujukan Fibonacci. Seterusnya, kami menggunakan fungsi Penanda Aras rangka kerja ujian untuk menentukan fungsi penanda aras Fibonacci. Dalam fungsi ini, kami melakukan Fibonacci(20) 20 kali dan menggunakan gelung untuk mengulangi penanda aras.

Jalankan penanda aras:

$ go test -bench=.
goos: darwin
goarch: amd64
BenchmarkFibonacci-4        300000          4540 ns/op
PASS
ok      _/path/to/package    1.402s
Salin selepas log masuk

Kita dapat melihat bahawa hasil penanda aras menunjukkan bahawa setiap pelaksanaan Fibonacci(20) mengambil masa kira-kira 4540 nanosaat.

Kesimpulan:
Artikel ini memperkenalkan secara ringkas rangka kerja ujian Golang dan menyediakan contoh kod yang sepadan. Rangka kerja ujian terbina dalam boleh memenuhi kebanyakan keperluan ujian, manakala rangka kerja Testify pihak ketiga menyediakan kaedah yang lebih mudah. Selain itu, ujian penanda aras ialah cara penting untuk mengoptimumkan prestasi, dan rangka kerja ujian Golang juga menyokong penulisan ujian penanda aras. Dengan mempelajari dan menggunakan rangka kerja ujian ini, kami dapat memastikan kualiti dan prestasi kod dengan lebih baik serta meningkatkan kecekapan pembangunan perisian.

Atas ialah kandungan terperinci Pengenalan kepada rangka kerja ujian 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!