祝国庆快乐!
之前说过, go包名和路径名不一致必须完全一致, 的确如此。 但是, 建议一致。功能测试go test mymath查找路径就是根据包名来查找的。
先来看看功能测试,add.go内容为:
package mymath
func Add(x, y int) int {
return x + y
}
add_test.go内容为:
package mymath
import "testing"
func TestX(t *testing.T){
i := Add(4, 6)
if i != 10 {
t.Error("failed")
}
}
结果:
xxx$ go test mymath
ok mymath (cached)
xxx$
再来看看性能测试:
add.go中增加sleep操作:
package mymath
import "time"
func Add(x, y int) int {
time.Sleep(time.Second)
return x + y
}
再看add_test.go的内容:
package mymath
import "testing"
func BenchMarkY(b *testing.B){
for i := 0; i < b.N; i++ {
Add(1, 2)
}
}
来测一下(在本例中, 执行如下命令时,GOPATH没啥作用,想想为什么):
xxx$ go test -test.bench add.go
PASS
ok xxxxxx/learngo/src/mymath 1.006s
xxx$
符合预期。
注意:
1. 测试文件命名必须用xxx_test.go的形式
2. 功能测试函数必须用TestX的形式, X要大写
3. 性能测试函数必须是BenchMarkY的形式, Y要大写
OK, 不多说。
本文深入探讨了Go语言的功能测试和性能测试,详细介绍了测试文件命名规范、测试函数命名规则及测试执行过程。通过具体示例,展示了如何进行功能测试和性能测试,并解释了测试过程中的一些注意事项。

被折叠的 条评论
为什么被折叠?



