单元测试是质量保证十分重要的一环,好的单元测试不仅能及时地发现问题,更能够方便地调试,提高生产效率,所以很多人认为写单元测试是需要额外的时间,会降低生产效率,是对单元测试最大的偏见和误解
go 语言原生支持了单元测试,使用上非常简单,测试代码只需要放到以 _test.go
结尾的文件中即可。golang的测试分为单元测试和性能测试,单元测试的测试用例以 Test
开头,性能测试以 Benchmark
开头
举个例子
实现排列组合函数对应的单元测试和性能测试
实现排列组合函数
// combination.go
package hmath
func combination(m, n int) int {
if n > m-n {
n = m - n
}
c := 1
for i := 0; i < n; i++ {
c *= m - i
c /= i + 1
}
return c
}
实现单元测试和性能测试
// combination_test.go
package hmath
import (
"math/rand"
"testing"
)
// 单元测试
// 测试全局函数,以TestFunction命名
// 测试类成员函数,以TestClass_Function命名