目录
单元测试
1、封装数学工具类MathUtil,包含普通求自然数的和、递归求自然数的和
2、书写单元测试类MathUtil_test,验证MathUtil工具方法正误;
3、在命令行和IDE环境下调试跑上述单元测试
1、封装数学工具类MathUtil
D:\go_work\src\demo\mymath\MathUtil.go
package mymath
//循环累加
func GetSum(n int) int {
var sum = 0
for i := 1; i < n+1; i++ {
sum += i
}
return sum
}
//递归累加
func GetSumRecursively(n int) int {
if n == 1 {
return 1
}
return n + GetSumRecursively(n-1)
}
2、单元测试类MathUtil_test
D:\go_work\src\demo\mymath\MathUtil_test.go
package mymath
import "testing"
//普通单元测试
func TestGetSum(t *testing.T) {
sum := GetSum(10)
if sum != 55 {
t.Errorf("期望%d,实际%d\n", 55, sum)
t.FailNow()
}
t.Log("TestGetSum测试成功")
}
//递归单元测试
func TestGetSumRecursively(t *testing.T) {
sum := GetSumRecursively(10)
if sum != 55 {
t.Fatalf("期望%d,实际%d\n", 55, sum)
}
t.Log("TestGetSumRecursively测试成功")
}
3、运行单元测试
1、命令行执行单元测试
go test -v ./
2、IDE环境图形化执行单元测试
压力测试
1、封装数学工具类MathUtil
D:\go_work\src\demo\mymath\MathUtil.go
package mymath
//循环累加
func GetSum(n int) int {
var sum = 0
for i := 1; i < n+1; i++ {
sum += i
}
return sum
}
//递归累加
func GetSumRecursively(n int) int {
if n == 1 {
return 1
}
return n + GetSumRecursively(n-1)
}
2、性能测试类MathUtil_test
D:\go_work\src\demo\mymath\MathUtil_test.go
package mymath
import "testing"
//普通单元测试
func BenchmarkGetSum(b *testing.B) {
b.Log("BenchmarkGetSum测试开始")
b.ReportAllocs()
for i := 0; i < b.N; i++ {
GetSum(100)
}
}
//递归单元测试
func BenchmarkGetSumRecursively(b *testing.B) {
b.Log("BenchmarkGetSumRecursively测试开始")
b.ReportAllocs()
for i := 0; i < b.N; i++ {
GetSumRecursively(100)
}
}
3、运行性能测试
1、命令行执行性能测试
go test -bench=.
2、IDE环境图形化执行性能测试