Amalan terbaik untuk mengatur kod ujian GoLang: Struktur fail: Kod ujian untuk setiap pakej hendaklah diletakkan dalam fail berasingan yang berakhir dengan akhiran _test.go. Penamaan fungsi ujian: Gunakan func Test
Cara mengatur kod ujian untuk fungsi GoLang
Prakata
Menulis kod ujian dalam Go adalah penting untuk memastikan fungsi anda berfungsi seperti yang diharapkan. Kod ujian yang teratur memudahkan untuk mengekalkan dan melanjutkan asas kod anda. Dalam artikel ini, kami akan meneroka amalan terbaik untuk mengatur kod anda untuk menguji fungsi GoLang.
1. Struktur fail
Untuk setiap pakej yang akan diuji, adalah disyorkan untuk membuat fail ujian berasingan, yang berakhir dengan akhiran _test.go
. Ini bermakna bahawa fail ujian anda akan berada dalam direktori yang sama dengan fail sumber lain dalam pakej. _test.go
后缀结尾。这意味着您的测试文件将与包中的其他源文件位于同一目录中。
2. 测试函数命名
每个测试函数都应该有一个清晰而简洁的名称,描述它正在测试的内容。通常使用以下约定:
func Test<FunctionName>_<TestType>()
例如,对于 Add
函数,您可以使用以下测试函数名称:
func TestAdd_Basic() func TestAdd_EdgeCases()
3. 测试表
对于涉及多个输入或输出值的情况,测试表是一种组织测试用例的便捷方式。您可以创建一个结构或类型来表示测试表中的每一行。
4. 基准测试
如果你需要评估函数的性能,可以使用 Go 语言中的基准测试功能。基准测试可以测量函数运行所需的时间。
5. 模拟
在某些情况下,您可能需要模拟函数的依赖关系以测试其行为。标准库提供了多种模拟库,例如 testify/mock
。
实战案例:测试一个简单的计算函数
让我们考虑一个简单的计算函数 Sum
,它接受两个整数并返回它们的总和。让我们编写一个测试文件来测试此函数:
package main import "testing" func Sum(a, b int) int { return a + b } func TestSum_Basic(t *testing.T) { tests := []struct { a, b, expected int }{ {1, 2, 3}, {0, 0, 0}, {5, -2, 3}, } for _, tt := range tests { actual := Sum(tt.a, tt.b) if actual != tt.expected { t.Errorf("Sum(%d, %d) = %d, expected %d", tt.a, tt.b, actual, tt.expected) } } }
在这个测试文件中,我们使用了测试表来表示不同的测试用例。我们还使用了 Errorf
Add
, anda boleh menggunakan nama fungsi ujian berikut: 🎜rrreee🎜🎜3 Jadual ujian 🎜🎜🎜Untuk kes yang melibatkan berbilang input atau nilai output , jadual ujian ialah cara yang mudah untuk mengatur kes ujian. Anda boleh membuat struktur atau jenis untuk mewakili setiap baris dalam jadual ujian. 🎜🎜🎜4. Penandaarasan🎜🎜🎜Jika anda perlu menilai prestasi sesuatu fungsi, anda boleh menggunakan fungsi penanda aras dalam bahasa Go. Penanda aras mengukur tempoh masa sesuatu fungsi dijalankan. 🎜🎜🎜 5. Olok-olok 🎜🎜🎜 Dalam sesetengah kes, anda mungkin perlu mengejek kebergantungan fungsi untuk menguji kelakuannya. Pustaka standard menyediakan pelbagai perpustakaan mengejek, seperti bersaksi/mengejek
. 🎜🎜🎜Kes Praktikal: Menguji Fungsi Pengiraan Mudah🎜🎜🎜Mari kita pertimbangkan fungsi pengiraan mudah Errorf
untuk melaporkan sebarang ujian yang gagal. 🎜Atas ialah kandungan terperinci Bagaimana untuk mengatur kod ujian fungsi golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!