测试
在 Go 中,测试是开发过程的一个有机组成部分。Go 语言配备了一个内置的测试框架,使得编写和运行测试很方便。
假设你有一个一个名为 calculator.go
的文件,其中有一个简单的函数用于将两个数字相加:
// calculator.go
package calculator
// Add 返回两个整数的和
func Add(a, b int) int {
return a + b
}
现在,在同一目录下创建一个名为 calculator_test.go
的测试文件来测试 Add 函数:
// calculator_test.go
package calculator
import "testing"
func TestAdd(t *testing.T) {
result := Add(2, 3)
expected := 5
if result != expected {
t.Errorf("Add(2, 3) = %d; expected %d", result, expected)
}
}
测试函数必须在以 _test.go
结尾的文件中,并且函数名以 Test
开头。
运行测试使用 go test
命令:
go test
基准测试
基准测试是一种测量函数或代码片段性能的方法过程。
// calculator.go
package calculator
// Factorial 计算n的阶乘
func Factorial(n int) int {
if n <= 1 {
return 1
}
return n * Factorial(n-1)
}
// calculator_benchmark_test.go
package calculator
import (
"testing"
)
func BenchmarkFactorial(b *testing.B) {
for i := 0; i < b.N; i++ {
Factorial(10)
}
}
BenchmarkFactorial
是基准测试函数。b.N
次循环运行代码,以测量其性能。
要运行基准测试,使用 go test
命令和 -bench
标志:
go test -bench .
其输出包括每个迭代的执行时间以及每秒操作的数量。基准测试结果可以帮助开发者找出性能瓶颈,再设法优化解决。
Loading...
> 此处输出代码运行结果