golang学习随便记15-测试
在Go语言中,测试是非常重要的一部分,因为它能确保代码的正确性。以下是一些Go语言中的测试示例:
- 单元测试
单元测试是针对程序中最小的单位——函数或者方法进行正确性检查的测试。在Go语言中,可以使用testing标准库来进行单元测试。
package mymath
import (
"testing"
)
func TestAdd(t *testing.T) {
var a int = 1
var b int = 2
var expected int = 3
result := Add(a, b)
if result != expected {
t.Errorf("Add(%d, %d) = %d; expected %d", a, b, result, expected)
}
}
- 性能测试
性能测试是用来检查代码的性能的测试。在Go语言中,可以使用testing标准库的(*B).N
和(*B).ResetTimer
方法来进行性能测试。
package mymath
import (
"testing"
)
func BenchmarkAdd(b *testing.B) {
var a int = 1
var b int = 2
for i := 0; i < b.N; i++ {
Add(a, b)
}
}
- 压力测试
压力测试是用来检查代码在高负载下的表现的测试。在Go语言中,可以使用go test
命令的-cpu
和-parallel
标志来进行压力测试。
package mymath
import (
"testing"
)
func TestAdd(t *testing.T) {
var a int = 1
var b int = 2
var expected int = 3
result := Add(a, b)
if result != expected {
t.Errorf("Add(%d, %d) = %d; expected %d", a, b, result, expected)
}
}
- 示例代码
以下是一个简单的Go语言程序,包含了一个加法函数和一些测试。
package mymath
func Add(a int, b int) int {
return a + b
}
package mymath
import (
"testing"
)
func TestAdd(t *testing.T) {
var a int = 1
var b int = 2
var expected int = 3
result := Add(a, b)
if result != expected {
t.Errorf("Add(%d, %d) = %d; expected %d", a, b, result, expected)
}
}
在这个示例中,我们定义了一个mymath
包,其中有一个Add
函数。然后我们编写了一个测试函数TestAdd
,用来检查Add
函数是否能正确地返回两个整数的和。
在Go语言中,测试文件必须以_test.go
结尾,测试函数必须以Test
为前缀,并且接收一个*testing.T
类型的参数。如果测试通过,你会看到类似ok mymath 0.003s
的输出;如果测试失败,你会看到FAIL: mymath [no test flags]
后跟着失败的测试信息。
评论已关闭